2009-08-11 15 views
15

wpadłem na ten przykład do blokowania stacji roboczej systemu Windows:Blokada systemu Windows Workstation programowo w C#

using System.Runtime.InteropServices; 
... 
[DllImport("user32.dll", SetLastError = true)] 
static extern bool LockWorkStation(); 

... 
if (!LockWorkStation()) 
    throw new Win32Exception(Marshal.GetLastWin32Error()); // or any other thing 

Czy istnieje czysta udało Alternatywą dla tego fragmentu? Mianowicie bez P-Invoke.

Odpowiedz

16

Nie, nie ma. To najlepszy sposób na osiągnięcie tego działania.

Nawet gdyby został dostarczony w BCL, jego implementacja prawie na pewno byłaby identyczna z twoją próbką. To nie jest coś, co CLR wprowadzi natywnie.

+0

+1 dla wyjaśnienia, dziękuję. –

+0

@RonKlein: Hej, chcę zrobić to samo. tj. programowo Blokowanie pulpitu Windows i pokazuje ekran logowania bez zamykania sesji bieżącego użytkownika. To robi to samo czy coś innego ??? Dziękuję za powyższe rozwiązanie, które pomaga mi na wiele sposobów. Po prostu wyjaśnij mi to pytanie. –

+0

@Hemang Rami, Myślę, że to, co próbujesz zrobić, jest dokładnie tym, o co pytałem: zablokowanie stacji roboczej przy utrzymaniu bieżącej sesji aktywnej. –

Powiązane problemy