Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Maus Hook Problem (https://www.delphipraxis.net/65889-maus-hook-problem.html)

Flippo 21. Mär 2006 22:28


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:
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;
Ich dachte das würde jezt Systemweit funkionieren tuts aber nicht, was muss ich da ändern.
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

ulrich.b 21. Mär 2006 22:43

Re: Maus Hook Problem
 
Zitat:

Zitat von Flippo
Hi,
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.

Willst du jetzt eigentlich ...
*) Auf einen Klick auf ein bestimmtes element ausserhalb deiner applikation reagieren, ODER
*) Einfach mitbekommen, dass IRGENDWO ausserhalb der Delphi App geklickt wurde

... ???

Flippo 22. Mär 2006 09:10

Re: Maus Hook Problem
 
wenn irgendwo außerhalb oder innerhalb der delphi app geklickt wird

ulrich.b 22. Mär 2006 10:14

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

Flippo 22. Mär 2006 12:28

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

konda 22. Mär 2006 13:04

Re: Maus Hook Problem
 
Zitat:

Zitat von ulrich.b
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

Ist die Komponente kostenlos? :?:

ulrich.b 22. Mär 2006 13:42

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

konda 22. Mär 2006 13:57

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:

marlem 22. Mär 2006 14:39

Re: Maus Hook Problem
 
mich würde auch interessieren wie man einen maushook selbst schreibt!

Flippo 22. Mär 2006 15:36

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.
Seite 1 von 2  1 2      

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