Der Dienst muss feststellen, ob die Arbeitsstation gesperrt und der Bildschirmschoner aktiv ist

8

Ich arbeite an einem Dienst, der Benutzerstatus für alle Benutzer ermitteln muss, die an einem einzelnen Computer angemeldet sind. Insbesondere möchte ich überprüfen, ob der Bildschirmschoner aktiv ist und ob seine Sitzung gesperrt ist oder nicht.

Dieser Code wird unter einem Dienst auf Systemebene ausgeführt und hat keine sichtbare Benutzeroberfläche, sodass möglicherweise mehrere Optionen ausgeschlossen sind (WM-Nachrichten usw.).

Abgesehen von normalen Arbeitsstationen möchte ich, dass dies auf Terminalservern funktioniert, auf denen mehrere Benutzer angemeldet sind. Aufgrund dieser Anforderungen frage ich mich, ob mehrere Win32-APIs beteiligt werden müssen.

Haben Sie Ideen, wo Sie anfangen sollen?

    
Brian Cline 29.10.2008, 19:53
quelle

4 Antworten

4

Der einfachste Weg wäre, eine kleine App in jeder Benutzersitzung laufen zu lassen. Jede Instanz dieser App kann mit der Hauptinstanz des Dienstes kommunizieren.

Windows versucht ziemlich hart, Anmeldesitzungen getrennt zu halten - sowohl zwischen Diensten und dem interaktiven Desktop als auch zwischen einzelnen Terminaldienstsitzungen - so wird es sehr schwierig, auf diese Art von Informationen über die Sitzung eines Benutzers zuzugreifen, sofern Ihre App nicht läuft in dieser Sitzung beginnen.

    
Tim Robinson 29.10.2008, 20:01
quelle
19

Als Service können Sie das Ereignis OnSessionChange verwenden, um alle Ihre relevanten Momente zu erfassen.

%Vor%

Ich bin mir sicher, dass es möglich ist, den Benutzer anhand von changeDescription.SessionId zu identifizieren. Aber im Moment weiß ich nicht wie ...

EDIT: Dies sollte eine Möglichkeit sein

%Vor%

MSDN-Verknüpfungen

Michael Piendl 09.04.2009 12:40
quelle
2

Eine einfachere Lösung wäre die Verwendung von Cassia , mit der die verschiedenen TS-APIs umschlossen werden, um zu überprüfen, wie lange Benutzer im Leerlauf waren:

%Vor%     
Dan Ports 09.04.2009 12:15
quelle
1

Bildschirmschoner sollten die Erweiterung .scr haben, könnten Sie die laufenden Prozesse abfragen ......

    
Adrian 29.10.2008 20:02
quelle

Tags und Links