Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Rechner sperren mit externem USB-Monitor (https://www.delphipraxis.net/173630-rechner-sperren-mit-externem-usb-monitor.html)

ProPinball 7. Mär 2013 14:45

Rechner sperren mit externem USB-Monitor
 
Hallo,

ich hab folgendes Problem. Ich hab ein Rechner mit einem angeschlossenem externen USB-Monitor, welcher als zweiter Monitor verwendet wird. Auf dem Rechner selber läuft ein Programm (Delphi 7) von mir, welches Türöffner ansteuert. Auf dem Haupt-Desktop ist die Main-Form des Programms zu sehen (Statusanzeigen für Service-Einsätze, hardwaremässig ist da kein Monitor dran) und auf dem externen USB-Monitor werden verschiedene Statusmeldungen/Bilder für den Benutzer in einem zweiten Fenster angezeigt. Der Rechner ist mit dem Internet verbunden und man muß auf ihn mit einer Fernwartung (z.B. VNC, Teamviewer, ...) zugreifen können. Soweit mal die Anforderung und das funktioniert auch schon.

Das Problem: Läuft das System (Windows XP oder Windows 7) nun einige Minuten ohne Interaktion, schaltet sich der Bildschirmschoner ein, der nach Reaktivierung die Anmeldedaten des Benutzers verlangt. Sicherheitstechnisch natürlich super und auch so gewollt. Das Problem ist aber, dass der externe USB-Monitor sich dabei abschaltet und nur noch schwarz anzeigt und erst bei Wiederanmeldung das Fenster erneut anzeigt. Das "Abschalten" sollte er aber nicht.
Einzige mir bekannte Möglichkeit ist, dass die Sperre beim Bildschirmschoner bzw. der Bildschirmschoner komplett deaktiviert wird. Dann wird das Fenster immer schön angezeigt.

Sollte nun allerdings jemand "Fremder" auf den Rechner draufkommen (falls er z.B. den Fernwartungsport entdeckt und hackt), dann kann er da natürlich wie ihm beliebt herumwerkeln.

Also hab ich nun versucht meinen eigenen Bildschirmschoner mit Passwortabfrage zu schreiben, damit zumindest diese Hürde noch zu nehmen wäre, falls jemand drauf kommt.
Allerdings gibt es da das Problem der verschiedenen System-Tastenkombinationen (Ctrl+Esc, Ctrl+Shift+Esc, Ctrl+Alt+Del, ...). Mit einem eigenen Keyboard-Hook hab ich zumindest die einfacheren Kombis schon abgefangen, aber Ctrl+Alt+Del geht immer durch.

Was gibt es denn da noch für Möglichkeiten, um den auch noch zu blockieren? Hab schon von der MSGina.dll gehört, allerdings trau ich mich da nicht drüber (und auch keine Ahnung ob das funktioniert und ob das Problem mit dem externen Monitor dort auch auftreten kann...). Hat hier jemand Erfahrung damit?

Oder wäre es am einfachsten den USB-Monitor in die Tonne zu treten und was anderes zu nehmen was nicht als Zweit-Monitor funktioniert, sondern direkt angesteuert werden kann (und somit auch bei aktivierter Rechnersperre was anzeigen kann).

Bin für jede Idee, Lösungsansatz, Vorschlag schon mal dankbar.

Gruß,
ProPinball.

Aviator 7. Mär 2013 16:03

AW: Rechner sperren mit externem USB-Monitor
 
Meines Wissens nach ist es von Haus aus bei Windows nicht möglich, auf einem zweiten oder dritten Monitor (egal wie angeschlossen) etwas anzuzeigen, obwohl der Bildschirmschoner bzw. die Benutzersperre aktiv ist. Kann dir allerdings nicht sagen, ob es doch eine windowsinterne Möglichkeit gibt das zu machen.

Vielleicht hilft dir das hier noch weiter ...

Edit:

Das hier schreibt Luckie in einem anderen Thread dazu:

Zitat:

Erstes auch ein Hook nützt da nichts, da diese Tastenkombination von Windows extra behandelt wird. Da hilft nur abfangen bevor Windows seinen Daumen drauf hat. Dies wird aber nur über einen Tastaturtreiber gehen, also nix mit Delphi.

p80286 7. Mär 2013 16:15

AW: Rechner sperren mit externem USB-Monitor
 
Ich glabe daß es im prinzip geht.
wenn ich micht recht erinnere, hatte ich mal einen rechner, der den zweitmonitor auch bei laufendem Bildschirmschoner ansteuern konnte.
es war allerdings ein Monitor für videos.
habe keine aAhnung was das für eine Videokarte war.

Gruß
K-H

Sir Rufo 7. Mär 2013 21:21

AW: Rechner sperren mit externem USB-Monitor
 
Richte einen absolut kastrierten Benutzer ein ohne Bildschirmschoner und gebe dem als Shell das Programm.
Somit kann ausschließlich dieses Programm laufen.

Per TeamViewer (automatisch mit Windows starten) kommt man nun an den Rechner und kann z.B. über eine geschützte Funktion (im Programm) den Explorer starten oder auch sich abmelden und als Admin-Benutzer anmelden.

Meine 5c :)

Der schöne Günther 8. Mär 2013 07:21

AW: Rechner sperren mit externem USB-Monitor
 
"Kisok-Modus" also? :-D

Der Bildschirmschoner und Login-Bildschirm (wie auch der Dialog bei STRG+ALT+ENTF) ist durch einen zusätzlichen Windows-Desktop geregelt. Windows wirft dich hierbei komplett von "deinem" Desktop herunter und schaltet auf einen anderen um.

Prozesse "deines" Desktops können noch nicht einmal auf einem anderen Desktop etwas machen oder bekommen da viel mit (noch nicht einmal globale Tastaturhooks).


Es gibt hierfür (für Delphi) fertige kommerzielle Lösungen die sich um den ganzen Kram wie
  • Systemtasten sperren (ALT+TAB, STRG+TAB, ALT+F4, ...)
  • Startmenü ausblenden
  • Startmenü deaktivieren
  • Desktopsymbole deaktivieren
  • Taskmanager deaktivieren
  • Benutzerlogoff deaktivieren
  • usw

kümmern ("dWinLock" fällt mir da ein), allerdings lässt sich das mit etwas Zeit auch komplett selbst in Delphi umsetzen.


Zusammenfassung: Aus dem Bildschirmschoner kommst du um keinen Preis von selbst heraus, wenn du so etwas trotzdem brauchst, musst du dich selbst um die Abschottung des Systems kümmern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz