![]() |
Überprüfen, ob die Arbeitsstation gesperrt ist
Hallo,
wie kann ich in einem Dienst prüfen, ob die Arbeitsstation gesperrt ist oder nicht? dieser Code funktioniert nur in einer Anwendung nicht aber in einem Dienst!!
Delphi-Quellcode:
function IsWorkstationLocked: Boolean;
var hDesktop: HDESK; begin Result := False; hDesktop := OpenDesktop('default', 0, False, DESKTOP_SWITCHDESKTOP); if hDesktop <> 0 then begin Result := not SwitchDesktop(hDesktop); CloseDesktop(hDesktop); end; end; |
Re: Überprüfen, ob die Arbeitsstation gesperrt ist
Reine vermutung aus dem Hinterkopf - kann es sein, dass du gewisse Security-Tokens (oder wie auch immer die Dinger heißen) holen musst, um den Desktop wechseln zu dürfen(auch wenn du unter SYSTEM läufst)?
Die Anwendung muss den (Benutzer-)Desktop ja nicht öffnen, weil sie direkt in ihm läuft. |
Re: Überprüfen, ob die Arbeitsstation gesperrt ist
Was ist denn die Fehlermeldung? GetLastError fehlt hier.
|
Re: Überprüfen, ob die Arbeitsstation gesperrt ist
@Dezipaitor
GetLastError liefert 5 -> Zugriff verwigert |
Re: Überprüfen, ob die Arbeitsstation gesperrt ist
Für welchen Befehl?
|
Re: Überprüfen, ob die Arbeitsstation gesperrt ist
@Dezipaitor
bei der Funktion: hDesktop := OpenDesktop('default',0,false,DESKTOP_SWITCHDESKTO P);[list][*] |
Re: Überprüfen, ob die Arbeitsstation gesperrt ist
hast du beim Dienst : "Interaktion mit dem Desktop" eingestellt?
Verwendest du Vista ? |
Re: Überprüfen, ob die Arbeitsstation gesperrt ist
@Dezipaitor
wie kann ich "Interaktion mit dem Desktop" einstellen? der Dienst läuft unter Win XP |
Re: Überprüfen, ob die Arbeitsstation gesperrt ist
Das kannst du bei der Dienstkonfiguration in der Diensteverwaltung machen. Davon ist aber abzuraten, da es ein potentielles Sicherheitsloch darstellt und ist deswegen unter Windows Vista auch nicht mehr möglich.
|
Re: Überprüfen, ob die Arbeitsstation gesperrt ist
Verwende mal vorher OpenWindowStation und dann SetProcessWindowStation, damit wird der Prozess der WindowStation zugewiesen und kann etwas mehr mit den Desktops.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz