Entwickler-Ecke

Windows API - Warum arbeitet dieses KeyboardHook nicht auf Win7?


Biarchiv - Fr 18.03.11 19:29
Titel: Warum arbeitet dieses KeyboardHook nicht auf Win7?
Hallo,

folgender Code läuft wunderbar auf WinXP. Aber überhaupt nicht auf Win7. Warum, es kommt überhaupt kein Keyhook an.
http://mo4x.wordpress.com/2007/03/30/simple-keylogger-in-delphi/


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Fr 18.03.2011 um 18:35


jaenicke - Fr 18.03.11 19:43

Hast du denn jegliche Sicherheitssoftware, die bei dir installiert ist, zum Testen einmal deaktiviert?
Denn bei mir z.B. hätte solch ein Versuch keinerlei Chance, der Zugriff würde aus Sicherheitsgründen sofort blockiert.

Hast du es einmal mit Adminrechten probiert? Ich weiß nicht, ob man diese braucht.

Außerdem vermisse ich bei dir jegliche Fehlerbehandlung... :roll: Siehe Doku:
Zitat:
Return Value

Type: HHOOK

If the function succeeds, the return value is the handle to the hook procedure.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.


Hobby-Programmierer - Fr 18.03.11 19:49

Willst Du innerhalb eines Win7 64bit hooken?
Wenn ja solltest du auf Freepascal umsteigen, evtl. musst Du auch LowLevelHook benutzen.


Biarchiv - Fr 18.03.11 20:18

Hallo,

ja Win7 64-Bit. Sicherheitslösungen sind abgeschaltet. An dem kanns nicht liegen.


Marc. - Fr 18.03.11 21:40

user profile iconBiarchiv hat folgendes geschrieben Zum zitierten Posting springen:
ja Win7 64-Bit. Sicherheitslösungen sind abgeschaltet. An dem kanns nicht liegen.

War das WinXP 32-"bittig"? Denn AFAIK [http://www.delphipraxis.net/150705-hook-fuer-windows-7-64-bit.html] müssen Hooks für 32 bzw. 64Bit entsprechend angepasst werden.


Hobby-Programmierer - Sa 19.03.11 07:38

Wie ich schon geschrieben habe solltest du WH_KEYBOARD_LL benutzen. Bei mir haben bisher alle getesteten Hooks mit kleineren Anpassungen funktioniert, auch ohne Adminrechte.