Hi,
ich hab mir einen KeyboardHook geschrieben, der eine Message and das Hauptprogramm sendet, damit ich dort alles auswerten kann.
Das Ganze sieht so aus:
Delphi-Quellcode:
function KbdHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
Result := CallNextHookEx(Keyboard_HookHandle, nCode, wParam, lParam);
case nCode < 0 of
True: exit; // nicht anrühren wenns negativ ist
False:
begin
case ((lParam and $80000000) = 0) of
True: ; // WM_KEYDOWN
else // WM_KEYUP
SendMessage(HWND_BROADCAST,myMsg3,wParam,lParam);
end;
end;
end;
end;
Mein Problem ist jetzt, dass wenn ich in einem Spiel (in meinem Fall Warcraft III) eine Taste drücke, dann wird die Message
zweimal gesendet. In Windows passiert dies auch manchmal. Undzwar wenn ich in einem Edit das auf der Form liegt eine Taste drücke. Hat das Edit keinen Focus, dann kommt die Message einmal an, so wie es sein soll?
Hat jemand eine Idee, was da los ist und wie ich das in den Griff bekommen kann?