Zitat von
Marco Steinebach:
Hi StefanG,
Erstmal vielen herzlichen Dank für die rasche Antwort.
Ich hab noch 'n paar Fragen zu der MSGFilterFunc, bzw. ich und mein Compiler
:
Code:
Result := 0;
if (Code < 0) or (wParam = PM_NOREMOVE) then
Result := CallNextHookEx(HookHandle, Code, wParam, lParam)
...
wo kommt der HookHandle im Aufruf von CallNextHook her?
Also erstmal solltest du dir bewusst sein, dass dieser Code aus einer Hookdll stammt. Für Informationen über Hooks empfehle ich das Tutorial unter
www.assarbad.net.
Das HookHandle ist der Rückgabewert der Funktion SetWindowsHookEx.
Bei mir exportierte die
DLL eine Funktion "SetHook" mit der ich von meinem Programm aus den Hook installieren konnte
Code:
function SetHook : Boolean; stdcall;
begin
Result := False;
HookHandle := SetWindowsHookEx(WH_GETMESSAGE, @MsgFilterFunc, HInstance, 0);
Result := HookHandle <> 0;
end;
Zitat:
Code:
else begin
Kill := False;
case TPMsg(lParam)^.message of
bei der Zeile steigen ich und mein Compiler aus. Was ist TPMSG?
TPMsg ist einfach ein Pointer auf ein TMSG also
Tmsg ist in der Windows.pas deklariert
Zitat:
Code:
...
VK_D, // Win+D ==> Desktop
blöde frage, ich weiß, aber die ganzen VK's finde ich auch nicht. in welcher
Unit sind die denn?
jo wurde schon von MagicAndre beantwortet