Einzelnen Beitrag anzeigen

Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

KeyboardHook innerhalb eines Threads erstellen?

  Alt 14. Okt 2012, 18:00
Moin,
Hänge gerade etwas fest.
Ich arbeite an einem EMulator, der innerhalb eines Threads läuft.
Es handelt sich praktisch um nen komplettes SDK. Es besteht aus einem Compiler+Assembler, IDE und dem Emulator selber.
Aus der IDE kann der geschriebene SOurce direkt compiliert und der Emulator gestartet werden. DAmit der Emulator nicht blockiert, läuft er halt in einem eigenen Thread.

Der soll jetzt aber auch Keyinput mitbekommen. Zuerst dachte ich an SetWindowsHookEX.

Dieses würde am anfang der Execute-Methode des threads ausgeführt(damit auch die richtige ThreadID vorhanden ist)
Aber innerhalb des Threads funktioniert das nicht so wirklich. Erlichgesagt wird die Callback nie aufgerufen.
Wird auch für einen Hook ein extra WindowHandle+MessageLoop gebraucht?

Delphi-Quellcode:
FKeyHook := SetWindowsHookEx(WH_KEYBOARD,
                           @LHookProc,
                           HInstance,
                           ThreadID);
EDIT: LHookProc ist eine globale function, die intern dan über eine Globale variable auf den emulator zugreift und dessen methode aufruft.

MFG
Memnarch
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat