Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Windows Logon Hotkey? (https://www.delphipraxis.net/195574-windows-logon-hotkey.html)

seppitm 10. Mär 2018 17:47

Windows Logon Hotkey?
 
Hallo, ich habe das Problem, dass ich einen systemweiten Hotkey auch abfangen möchte wenn der Benutzer abgemeldet ist (Programm läuft weiter im Hintergrund). Mit "RegisterHotKey" Funktioniert das nur wenn der Benutzer angemeldet ist. Hat jemand damit Erfahrung?

HolgerX 10. Mär 2018 18:51

AW: Windows Logon Hotkey?
 
Hmm..


Ich glaube, das wird nichts...

Programme laufen ohne Anmeldung nur, wenn sie Dienste sind.
Dienste laufen hingegen seit einiger Zeit unter Windows in einer eigenen Session (Id '0').
Da diese Session keinen Unserinput hat, kann diese auch keine Hotkeys entgegen nehmen.

(So ist zu mindestens mein Kenntnisstand ;) )

seppitm 10. Mär 2018 23:27

AW: Windows Logon Hotkey?
 
Richtig, es gibt jedoch Programme die das können (Alarmsysteme). Das muss also irgendwie möglich sein.

KodeZwerg 11. Mär 2018 00:02

AW: Windows Logon Hotkey?
 
Ich würde einen System Treiber programmieren der das übernimmt. Lese ein paar Treiber Referenzen für deine Windows Version nach um zu verstehen wie Treiber programmiert und installiert werden können, zum Beispiel ein Tastatur-Treiber :-)
Nachtrag:
1. Mach dich vor allem schlau wie das Datei-/System auf Kernel-Ebene funktioniert falls du was laden musst oder andere System-Funktionen nutzen möchtest etc
2. Ich glaube Delphi Versionen ab XE sind dafür nicht mehr geeignet? Ungewiss! Ich würd sowas eher mit C++ realisieren.
(Tut mir leid falls ich falsch liege, ich kenne halt keine Delphi Treiber auf System Ebene die mit XE oder höher programmiert wurden aber ich lasse mich gerne vom Gegenteil Überzeugen!!!)

Ps: Je nach Windows Version und Einstellung musst du dich eventuell auch damit vertraut machen wie du dein Windows "überredest" nicht-digital-signierte Treiber zu akzeptieren.

himitsu 11. Mär 2018 00:49

AW: Windows Logon Hotkey?
 
Der Logonscreen und z.B. auch die UAC-Paswortabfragen sind "absichtlich" getrennte Systeme (anderer Desktop), wo Programm keinen übergreifenden Zugriff haben.

einige Lösungen:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
https://docs.microsoft.com/en-us/win...e/custom-logon

KodeZwerg 11. Mär 2018 01:29

AW: Windows Logon Hotkey?
 
Zitat:

Zitat von himitsu (Beitrag 1395762)
wo Programm keinen übergreifenden Zugriff haben.

Ich bin anderer Meinung, man kann Scripte per Treiber erstellen lassen die wärend der Login-Sequenz ausgeführt werden, also zum Beispiel ein Programm mit einem Parameter oder ini Dateien erstellen die dann normal eingelesen werden wenn das Programm Auto-Startet (also um "übergreifend" zu funktionieren meine ich).

himitsu 11. Mär 2018 05:58

AW: Windows Logon Hotkey?
 
Das ist halt ein Unterschied.

Aber ein Programm in einem anderem Kontext darf einfach nicht darauf zugreifen, denn genau das wurde aus Sicherheitsgründen verboten, damit z.B. "böse" Programme deine Passworter nicht so leicht belauschen oder den Eingabedialog fernsteuern können.

HolgerX 11. Mär 2018 06:35

AW: Windows Logon Hotkey?
 
Hmm..

(Lt. Google)

Sollte es möglich sein per DLL injection einen Keylogger in die WinLogon.Exe zu bekommen, jedoch ging es in diesen Beiträgen meist um Windows XP.
Testweise hatte ich mal ein Service gebastelt, welcher beim (normalen) Login in der User-Session ein Programm gestartet hat.

Eventuell müsste es auch möglich sein, sich in die Session des Login einzuklinken und dann hat dieser Service (denke ich) die gleichen Möglichkeiten wie in einer normaler Session.

An einer anderen Stelle habe ich gelesen, dass WinLogon.exe sämtliche Tastatureingaben abfängt und blockiert....

KodeZwerg 11. Mär 2018 09:41

AW: Windows Logon Hotkey?
 
Ich bin fester Überzeugung das ab Vista ein dll Hook nicht mehr möglich ist wegen hitsumi's
Zitat:

Der Logonscreen und z.B. auch die UAC-Paswortabfragen sind "absichtlich" getrennte Systeme (anderer Desktop), wo Programm keinen übergreifenden Zugriff haben.

Codehunter 11. Mär 2018 15:27

AW: Windows Logon Hotkey?
 
Warum so kompliziert? WM_ENDSESSION und ähnliche Messages abfangen und gut ist.

EDIT: Vielleicht hab ich die Frage auch missverstanden. Aber wozu sollte man überhaupt die Tastenkombi WIN+L abfangen wollen wenn der Benutzer abgemeldet ist? Das ergibt irgendwie keinen Sinn.

Davon abgesehen:
Zitat:

Zitat von himitsu (Beitrag 1395766)
Aber ein Programm in einem anderem Kontext darf einfach nicht darauf zugreifen, denn genau das wurde aus Sicherheitsgründen verboten, damit z.B. "böse" Programme deine Passworter nicht so leicht belauschen oder den Eingabedialog fernsteuern können.

Das scheint mir aber nicht in Stein gemeißelt. Denn z.B. die Bildschirmtastatur scheint genau das zu können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.
Seite 1 von 2  1 2      

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