Hallo,
ich beschäftige mich zur Zeit mit Hooks und habe mir dazu Assarbads Tutorial angeschaut,
mich streng daran gehalten und ein Problem festgestellt.
Ich schicke das Ergebnis eines Tastaturhooks, also eine gedrückte Taste aus der
dll an
ein Programm wo, diese Tase lediglich angezeigt wird. Jedoch nur wenn die Eingabe im
InternetExplorer erfolgte.
Nun habe ich festgestellt, dass scheinbar jeder Tastendruck zweimal "ausgelöst" wird.
So erscheint bei folgendem Quelltext der HookProc zweimal eine showmessage bei einem
Tastendruck:
Code:
function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var
hHost, hIE : THandle;
begin
case nCode < 0 of
TRUE: exit;
FALSE:
begin
hIE := GetForegroundWindow;
if( hIE = FindWindow('IEFrame', nil)) then
begin
hHost := FindWindow(NIL, 'MeinProgramm');
if hHost <> 0 then
begin
SendMessage(hHost, wm_KeyUp, wParam, 0);
ShowMessage(chr(wParam));
end;
end;
end;
end;
Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
end;
Woran kann das liegen?
Danke,
Czapie.