![]() |
Hook - doppelt ausgelöst?
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:
Woran kann das liegen?
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; Danke, Czapie. |
Re: Hook - doppelt ausgelöst?
ganz einfach: du kriegst eine keydown und eine keyup message (wenn mich nicht alles täuscht), also für jede taste zwei messages!
|
Re: Hook - doppelt ausgelöst?
aha, und wie unterscheidet der Hook zwischen keyup und keydown?
Das kann doch nicht das gleiche sein? Czapie. |
Re: Hook - doppelt ausgelöst?
|
Re: Hook - doppelt ausgelöst?
:-D alzheimer lässt grüßen ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz