AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mausklick außerhalb des Formulars erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

Mausklick außerhalb des Formulars erkennen

Ein Thema von a.def · begonnen am 17. Apr 2017 · letzter Beitrag vom 18. Apr 2017
Antwort Antwort
Seite 1 von 2  1 2      
a.def
(Gast)

n/a Beiträge
 
#1

Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 18:05
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.
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#2

AW: Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 18:09
Guten Morgen !!!
http://www.delphipraxis.net/192415-m...ml#post1367934
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#3

AW: Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 18:18
Jetzt frage ich mich nur...
wie kann ich das Problem beheben, dass wenn man die Maustaste gedrückt hält, getAsyncKeystate aktiv bleibt?

Geändert von a.def (17. Apr 2017 um 18:24 Uhr)
  Mit Zitat antworten Zitat
ZYLAGON

Registriert seit: 11. Nov 2015
50 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 19:15
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
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#5

AW: Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 19:31
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.
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#6

AW: Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 20:21
Geht auch mit Interval:= 100; - Das reicht für eine normale Positionsbestimmung - oder will man eine Unterschrift simulieren?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 20:36
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#8

AW: Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 20:54
Zitat:
Und nimm die Lowlevel Variante
Wie genau funktioniert das denn?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 21:36
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
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: Mausklick außerhalb des Formulars erkennen

  Alt 17. Apr 2017, 22:59
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 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