![]() |
Hook beendet sich
Hallo,
ich habe einen kleinen Hook geschrieben für einen ColorPicker der auf dem kompletten Desktop funktionieren soll. Wenn ich den Hook starte klappt auch alles, nur beenden tut er sich nicht mehr, wenn er es soll ... . Hier mal der Code.
Delphi-Quellcode:
Jemand eine Idee?
function MouseHookProc(Code, wParam: Integer; var EventStrut: TEventMsg): Integer; stdcall;
var i: integer; begin Result := CallNextHookEx(MouseHook, Code, wParam, Longint(@EventStrut)); if Code < 0 then Exit; // Hook beenden if Code = HC_SYSMODALON then Exit; if Code = HC_ACTION then begin if EventStrut.message = WM_LButtonDown then begin MainFrm.Timer1.Enabled := false; MainFrm.Button1.Enabled := true; MainFrm.Panel2.Enabled := true; MainFrm.Panel3.Enabled := true; FhookStarted := false; with MainFrm do for i := 1 to 7 do TShape(FindComponent('f'+IntToStr(i))).Cursor := crHandPoint; UnhookWindowsHookEx(MouseHook); end; end; end; procedure StartHook; var i: integer; begin if FHookStarted = false then begin MouseHook := SetWindowsHookEx(WH_JOURNALRECORD, @MouseHookProc, hInstance, 0); if MouseHook > 0 then begin FHookStarted := True; MainFrm.Timer1.Enabled := true; MainFrm.Button1.Enabled := false; MainFrm.Panel2.Enabled := false; MainFrm.Panel3.Enabled := false; with MainFrm do for i := 1 to 7 do TShape(FindComponent('f'+IntToStr(i))).Cursor := crDefault; end; end; end; procedure MessageHook; var Msg: tagMSG; begin if (Msg.message = WM_CANCELJOURNAL) and FHookStarted then MouseHook := SetWindowsHookEx(WH_JOURNALRECORD, @MouseHookProc, 0, 0); end; // Hook Starten procedure TMainFrm.Button1Click(Sender: TObject); begin StartHook; end; |
Re: Hook beendet sich
vielleicht liegt es ja einfach daran das du innerhalb des hooks diesen beenden willst. Hast du schonmal das result von UnhookWindowsHookEx angeschaut? Und hast du schonmal versucht ob das ganze funktioniert wenn du den hook von außerhalb auch wieder beendest?
|
Re: Hook beendet sich
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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