Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mausklick außerhalb des Formulars erkennen (https://www.delphipraxis.net/192423-mausklick-ausserhalb-des-formulars-erkennen.html)

a.def 17. Apr 2017 17:05

Mausklick außerhalb des Formulars erkennen
 
Ist es möglich einen Mausklick, egal ob Links oder Rechts, außerhalb des eigenen Formulars zu erkennen?
Die aktuelle Mausposition zu erkennen ist kein Problem. Aber einen Klick erkennen bekomme ich nicht hin.

Ich habe gelesen, dass das wohl mit Hooks funktionieren soll nur habe ich davon soviel Ahnung wie von Schiffbautechnik. Also keine.

t.roller 17. Apr 2017 17:09

AW: Mausklick außerhalb des Formulars erkennen
 
Guten Morgen !!!
http://www.delphipraxis.net/192415-m...ml#post1367934

a.def 17. Apr 2017 17:18

AW: Mausklick außerhalb des Formulars erkennen
 
Jetzt frage ich mich nur...
wie kann ich das Problem beheben, dass wenn man die Maustaste gedrückt hält, getAsyncKeystate aktiv bleibt?

ZYLAGON 17. Apr 2017 18:15

AW: Mausklick außerhalb des Formulars erkennen
 
Also getAsyncKeystate bleibt doch aktiv in dem genannten Beispiel.
Wenn ich mit der Maus bei gedrückter linker Taste herumfahre, ändern sich ja auch die angezeigten Koordinaten.
Hast Du eventuell das Timerintervall zu hoch eingestellt, um die Änderungen zu bemerken?

VG
LZ

a.def 17. Apr 2017 18:31

AW: Mausklick außerhalb des Formulars erkennen
 
Timerinterval ist bei 25ms.
Deswegen dachte ich ja an einen Hook denn der reagiert wirklich nur wenn ich klicke und nicht irgendwann wenn der Timer anschlägt.

t.roller 17. Apr 2017 19:21

AW: Mausklick außerhalb des Formulars erkennen
 
Geht auch mit Interval:= 100; - Das reicht für eine normale Positionsbestimmung - oder will man eine Unterschrift simulieren?

jaenicke 17. Apr 2017 19:36

AW: Mausklick außerhalb des Formulars erkennen
 
Ich würde dafür einen Maushook verwenden. Damit bekommst du zuverlässig und recht einfach jedes Mausereignis.

Und nimm die Lowlevel Variante, sonst brauchst du dafür eine DLL.

a.def 17. Apr 2017 19:54

AW: Mausklick außerhalb des Formulars erkennen
 
Zitat:

Und nimm die Lowlevel Variante
Wie genau funktioniert das denn?

jaenicke 17. Apr 2017 20:36

AW: Mausklick außerhalb des Formulars erkennen
 
Hab mal Google gefragt:
Wenn du es einfach haben willst...
http://www.greatis.com/delphicb/mousehook/

Manuell findest du hier ein Beispiel für WH_MOUSE_LL:
http://stackoverflow.com/a/13346047

himitsu 17. Apr 2017 21:59

AW: Mausklick außerhalb des Formulars erkennen
 
Das Einzige, wo man bei diesen LowLevelHooks aufpassen muß, ist der Wirkungsbereich.

Ein paar der Hooks arbeiten InProcess und andere OutOfProcess.
Bei Einigen muß der Hook in eine DLL und die spricht dann via IPC mit deinem Programm, weil der Hook in alle anderen Prozesse rein muß (dafür braucht man eventuell höhere Rechte)
und andere Hooks laufen direkt in deinem Prozess und bekommen von Windows die Ereignisse zugesendet, benötigen also keine DLL.


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