Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 241113 (2549)
  Suchen
 Zurück zur Übersicht
 AutorThema: Info und Bitte: Sperren Arbeitsplatz
Rupert
Datum:28.05.02 13:12 Antwortenals Email verschicken (Rupert_Mueller@t-online.de) 


Hallo zusammen, es gab etliche male die Anfrage, wie man einen Arbeitsplatz mit einem Programmaufruf sperren kann.
Nachstehend habe ich zufällig in der MS Knowledgebase folgenden Artikel gefunden.

Könnte mir jemand die Zeile für NT:

-SendMessage(HWND_TOPMOST, WM_SYSCOMMAND, SC_SCREENSAVE, 0)-

in eine Profanzeile umwandeln? Ich sehe grad wohl den Wald vor lauter Bumen nicht und es eilt mal wieder ...

Danke im Voraus
Rupert

Artikelnummer:
D262646 Modifiziert:22-Dec-2001
Erstellungsdatum:10-May-2000

Sperren einer Arbeitsstation über die Befehlszeile

Titel des Originalartikels: Q262646: "How to Lock a Workstation from the Command Line"
Die Informationen in diesem Artikel beziehen sich auf:

Microsoft Windows 2000 Advanced Server
Microsoft Windows 2000 Professional
Microsoft Windows 2000 Server
Microsoft Windows NT Server 4.0
Microsoft Windows NT Workstation 4.0

ZUSAMMENFASSUNG:
In diesem Artikel wird beschrieben, wie Sie eine Windows 2000-basierte Arbeitsstation über die Befehlszeile sperren können. Dieser Artikel beschreibt darüber hinaus eine ähnliche Lösung, die zusätzliche Konfigurationsschritte für Microsoft Windows NT 4.0 erfordert.

WEITERE INFORMATIONEN:

Windows 2000
Wenn Sie einen Bildschirmschoner, wie im folgenden Artikel der Microsoft Knowledge beschrieben, manuell über die Befehlszeile starten, indem Sie den Dateinamen des Bildschirmschoners verwenden, verlangt der Bildschirmschoner keine Kennworteingabe, und die Arbeitsstation wird nicht gesperrt:
Q228160 Screen Saver Is Not Password Protected If Started Manually
Sie können die Win32-Funktion LockWorkStation verwenden, um eine Arbeitsstation mithilfe eines Programms zu sperren. Sie können diese Funktion an der Befehlszeile aufrufen, indem Sie den Befehl Run32dll verwenden. Verwenden Sie den folgenden Befehl, um eine Arbeitsstation über die Befehlszeile zu sperren:

rundll32 user32.dll,LockWorkStation

Beachten Sie, dass bei diesem Befehl die Groß- und
Kleinschreibung sowie Leerzeichen beachtet werden. Dieser Aufruf wurde in Windows 2000 eingeführt und wird in früheren Versionen von Windows nicht unterstützt.
Windows NT 4.0

Es existiert keine Lösung, mit deren Hilfe Sie eine Windows 4.0-basierte Arbeitsstation über die Befehlszeile sperren können. Sie können jedoch mit einigen zusätzlichen Konfigurationsschritten eine ähnliche Wirkung erzielen.

In Windows NT 4.0 können Sie den SendMessage-Aufruf zum Senden einer SC_SCREENSAVE-Meldung an das oberste Fenster verwenden, das die Arbeitsstation sperrt, wenn der aktuelle Benutzer einen Bildschirmschoner konfiguriert hat, der die Eingabe eines Kennworts erfordert.

Sie können Registrierungseinträge erstellen, um sicherzustellen, dass ein Bildschirmschoner konfiguriert ist. Führen Sie eine Registrierungsdatei (.reg-Datei) aus, die die folgenden Einträge an der Befehlszeile hinzufügt:
HKCU\Control Panel\Desktop\ScreenSaveActive = 1
HKCU\Control Panel\Desktop\ScreenSaverIsSecure = 1
HKCU\Control Panel\Desktop\ScreenSaveTimeout = Timeout in Sekunden
HKCU\Control Panel\Desktop\SCRNSAVE.EXE = %SystemRoot%\System32\ Geeignete Bildschirmschonerdatei (.scr)
Einige Bildschirmschoner erfordern außerdem zusätzliche Parameter im Schlüssel HKCU\Control Panel\Screen Saver. Bildschirmschonername.

Nachdem Sie diese Registrierungseinträge erstellt haben, ruft der folgende Aufruf den Bildschirmschoner auf:

SendMessage(HWND_TOPMOST, WM_SYSCOMMAND, SC_SCREENSAVE, 0)

Sie müssen ein kurzes Programm (.exe-Datei) schreiben und kompilieren, das diesen Aufruf enthält. Sie können anschließend Ihr Programm über die Befehlszeile aufrufen, um den Bildschirmschoner zu aktivieren. Da der Wert "ScreenSaverIsSecure" in der Registrierung auf 1 gesetzt wurde, wird die Arbeitsstation gesperrt.





Sven Schmidts
Datum: 28.05.02 13:45 Antwortenals Email verschicken (schmidts@flat2serv.de) 


Hallo,

- SendMessage(%HWND-1, $0112, $F140, 0)

So funktioniert es aber besser, weil nicht der Screensaver aufgerufen wird:

- Run "rundll32 user32.dll,LockWorkStation"

Mfg.
Sven Schmidts


 Zurück zur Übersicht