Maus Hook Problem
Hi,
hoffe hab die richtige Sparte erwischt, ich hab jetz schon so viele Sachen probiert und Tutorials gelesen und es klappt einfach immernoch nicht. Mein Problem: Ich muss es merken wenn irgendwo außerhalb meiner Form mit der Maus geklickt wird. Dafür brauch ich einen Maushook hab ich gelesen. Der Funktioniert mitlerweile auch schon soweit, das ich es merke wenn in die Form geklickt wird, ich will es aber auch merken wenn ich z.B. die Taskleiste anklicke. Mein Code:
Delphi-Quellcode:
Ich dachte das würde jezt Systemweit funkionieren tuts aber nicht, was muss ich da ändern.
function MouseProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin if wParam = WM_LBUTTONDOWN then begin if c=true then begin getcursorpos(P); pp.x:=p.x; pp.y:=p.y; c:=false; end; end; Result := CallNextHookEx(HookHandle, nCode, wParam, lParam); end; HookHandle:=SetWindowsHookEx(WH_Mouse, @MouseProc, HInstance, 0); form1.caption:='Bitte Punkt wählen'; C:=true; while C=true do begin application.ProcessMessages; sleep(100); end; UnhookWindowsHookEx(HookHandle); HookHandle:=0; Ideal wärs wenn ich sogar noch unterbinden könnte das Schaltflächen die während der Hook aktiv ist angeklickt werden nicht reagieren. Bin ein bischen ratlos würde mich über Hilfe freuen MFG Flippo |
Re: Maus Hook Problem
Zitat:
*) Auf einen Klick auf ein bestimmtes element ausserhalb deiner applikation reagieren, ODER *) Einfach mitbekommen, dass IRGENDWO ausserhalb der Delphi App geklickt wurde ... ??? |
Re: Maus Hook Problem
wenn irgendwo außerhalb oder innerhalb der delphi app geklickt wird
|
Re: Maus Hook Problem
Es gibt da eine Komponente (GpSysHook), die enthält eine DLL, die einen System Hook einrichtet, und mit der ebenfalls enthaltenen, nicht visuellen Komponente danach die Ereignise der Hooks per Delphi Event Handler ganz angenehm abgefangen werden können.
Ich hab mich einmal damit gespielt. Hat gut funktioniert. Soweit ich weiss sind auch Beispiele enthalten. Lg Ulrich |
Re: Maus Hook Problem
Hi danke schonmal,
aber das problem ist in meinen Augen sollte das oben ja auch ein Systemweiter Hook sein und ich würd gern wiessen wie das geht und ich brauch ja "nur" mitkriegen wenn irgendwo geklickt wird dafür extra eine Komponente einbauen wär mir zuviel. Hoffe irgendjemand weiß wie das richtig funktioniert MFG Flippo |
Re: Maus Hook Problem
Zitat:
|
Re: Maus Hook Problem
Ja freilich! Source + DLL ist alles da.
Aber schau dir den link einfach mal an. Steht eh alles dort! lg ulrich |
Re: Maus Hook Problem
Wenn ich versuche die Komponenten zu installieren, kommt immer eine Fehlermeldung Package VCL50 benötigt. Könnte aber vielleicht auch daran liegen dass das Package für Delphi5 ist und ich Delphi2005 habe. :gruebel:
|
Re: Maus Hook Problem
mich würde auch interessieren wie man einen maushook selbst schreibt!
|
Re: Maus Hook Problem
oke danke, solltich jetz hinbekommen
(muss ich offene Frage wieder abstellen oder geht das von allein? ich find kein hebel) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz