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