![]() |
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. |
AW: Mausklick außerhalb des Formulars erkennen
|
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? |
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 |
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. |
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?
|
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. |
AW: Mausklick außerhalb des Formulars erkennen
Zitat:
|
AW: Mausklick außerhalb des Formulars erkennen
Hab mal Google gefragt:
Wenn du es einfach haben willst... ![]() Manuell findest du hier ein Beispiel für WH_MOUSE_LL: ![]() |
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 02:16 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