Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Klick auf Screen abfangen (https://www.delphipraxis.net/137422-klick-auf-screen-abfangen.html)

firegyver 20. Jul 2009 19:13


Klick auf Screen abfangen
 
Hi zusammen,

ich möchte mein Formular reagieren lassen, wenn irgendwo auf dem Bildschirm der linke Mausbutton 2 Sekunden lang gedrückt wurde. Das Formular ist kleiner als der Bildschirm, mann müsste also externe Mausklicks irgendwie im Programm verarbeiten. Mit einem Maushook kam ich nicht weiter, da ich dort nur den aktuellen Aufenthaltsort der Maus herausfinden kann.

Ihr könnt mir doch sicher kurz weiterhelfen, wie ich die linke-Button-Klicks an mein Formular weiterleite und dort abfrage, ob er mind. 2 Sekunden lang gedrückt wurde.

Danke!

DeddyH 20. Jul 2009 19:32

Re: Klick auf Screen abfangen
 
Zitat:

Zitat von firegyver
Mit einem Maushook kam ich nicht weiter, da ich dort nur den aktuellen Aufenthaltsort der Maus herausfinden kann.

Bist Du Dir da sicher? Ich habe bislang noch keinen Mousehook schreiben müssen, aber ein Blick ins MSDN zeigt, dass es über CallWndProc möglich sein muss, die eigentliche Message (hier: WM_LBUTTONDOWN) in Erfahrung zu bringen. Aber wie gesagt, ich habe da keine Erfahrungen und auch nur nachgelesen.

firegyver 20. Jul 2009 19:46

Re: Klick auf Screen abfangen
 
Hi,

danke für deine Antwort. So wie ich es jetzt in Erfahrung gebracht habe, muss es über einen globalen Maushook auf WH_MOUSE laufen, der in der Callback-Funktion auf WM_LBUTTONDOWN abgefragt wird. Bin grad dabei, das mal in die geforderte externe Dll zu packen.

firegyver 20. Jul 2009 20:38

Re: Klick auf Screen abfangen
 
Hi,

nochmals eine Frage:
Ich möchte mit meinem globalen Maushook ja WM_LBUTTONDOWN abfangen und an mein Formular weiterreichen. Leider kann eine Dll keine Werte zwischenspeichern, das WM_LBUTTONDOWN läuft allerdings laufend auf - wie kann ich das entschärfen? Ihr habt sicher eine Idee.

toms 20. Jul 2009 20:49

Re: Klick auf Screen abfangen
 
Hallo

Mit der Komponente TWatch geht das sehr einfach.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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