Mam sobie DLL, a w nim formę. Unit formy ma obsługiwaś hooka. Po wduszeniu Ctrl ma się wyłączyś Timer (głwnie o to mi chodzi), itp. Fragment kodu widzicie poniżj:
var
GlobalHook: HHOOK;
lpWnd: PChar;
function MessageSpy(Code: Integer; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
var
Buffer : TEventMsg;
Wnd : array[0..MAX_PATH] of Char;
Self: TMainForm;
begin
Result := 0;
Buffer := PEventMsg(lParam)^;
if Buffer.Message = WM_KEYDOWN then
begin
GetWindowText(Buffer.hwnd, Wnd, SizeOf(Wnd));
if Wnd <> lpWnd then lpWnd := Wnd;
if Buffer.paramL = VK_CONTROL then
begin
Self.Caption := IntToStr(Buffer.paramL);
Self.Timer.Enabled := False;
Paused := True;
end;
end;
end;
//W OnCreate:
GlobalHook := SetWindowsHookEx(WH_JOURNALRECORD, MessageSpy, HInstance, 0);
//W OnDestroy:
UnhookWindowsHookEx(GlobalHook);
Niby wszystko dobrze, tyle że nie dział :-O. Duszę Ctrl i nic się</ort>nie dzieje :-(. Próowałm z LoWord i HiWord :-/, kodem 2 (Ctrl) oraz 8 i 10 (LCtrl i RCtrl), a także z VK_CONTROL, VK_LCONTROL i VK_RCONTROL. Co jest nie tak [???]. F1, F1, F1!!