Computer sperren (Win+L) + warten auf Entsperren

Hallo Gemeinde!

Vorinfo: Windows XP Prof. - C# unter .Net 2.0 mit Visual Studio 2005 Pro

Ich habe mir ein Programm gebastelt, das in einem Tray-Icon läuft.
Nun möchte ich gerne über einen Contextmenüeintrag den Computer sperren.
Habe in der MSDN das hier gefunden:
http://msdn2.microsoft.com/en-us/library/aa376875(VS…

Nun brauche ich das aber für C#. Hat jemand eine Idee?

Kennt jemand einen Weg, wie ich nach dem locken des PC abfragen kann, ob der Benutzer sich wieder angemeldet hat?

Für jeden Hinweis dankbar!

Gruss
Holger

Hallo!

[DllImport("user32.dll")]
public static extern bool LockWorkStation();

lg,
Georg

To receive notification when the user logs in, use the WTSRegisterSessionNotification function to receive WM_WTSSESSION_CHANGE messages.

Hi!
Funktionen wie das von Dir angeführte LockWorkStation() kann man verhältnismäßig einfach über einen Mechanismus namens P/Invoke verwenden.
Dazu muss nur deklariert werden, wo die Funktion zu finden ist und welche Parameter erwartet werden und schon kann man sie wie eine direkt in C# implementierte Methode aufrufen:

using System.Runtime.InteropServices;
 
class Win32
{
 [DllImport("user32.dll")]
 public static extern bool LockWorkStation();
}

…und schon kannst Du per Win32.LockWorkStation() die gewünschte Funktion aufrufen.

Das Entsperren bekommst Du über ein Ereignis von Microsoft.Win32.SystemEvents mit: SessionSwitch.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielen Dank!
Vielen Dank an Mars und Martin. Funktioniert tadellos.

Grüsse
Holger