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 Echte Mausklicks erkennen (https://www.delphipraxis.net/20078-echte-mausklicks-erkennen.html)

Florian H 13. Apr 2004 12:30


Echte Mausklicks erkennen
 
Hallo,

gibt es eine Möglichkeit, _echte_ Mausklicks zu erkennen?

Also es ist ja möglich, beispielsweise mit
Delphi-Quellcode:
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
einen Mausklick softwareseitig zu erzeugen.
Ich will aber nur die echten, mit der Maus getätigten!
Geht das irgendwie?


grüße
florian h

Meflin 13. Apr 2004 12:34

Re: Echte Mausklicks erkennen
 
klar, mit ner webcam und bewegungserkenner ;-)
nein mal im ernst ich glaubs eher nicht. das was du da erzeugst mit der software sieht für das os ja aus wie ein mausklick. ich kanns zwar nicht 100pro sagen aber ich zweifle dass es geht!

Bernhard Geyer 13. Apr 2004 12:46

Re: Echte Mausklicks erkennen
 
Evtl. indem Du im Event sowohl die aktuelle Position der Mause ausließt (Passen diese mit den Koordinaten im Event zusammen) als auch den Zustand der Maustasten.

hboy 13. Apr 2004 12:48

Re: Echte Mausklicks erkennen
 
ich glaube die Maustasten sind bei GetAsyncKeyState bei 2 oder 3 gemappt. Und das ist so weit ich weiß nur hardware

phlux 13. Apr 2004 13:00

Re: Echte Mausklicks erkennen
 
Vllt sowas wie ein Mousehook? :shock:

Meflin 13. Apr 2004 13:04

Re: Echte Mausklicks erkennen
 
ein hook fängt ja nur die messages ab -> auch das was du per software erzeugst ist ne message, also kein unterschied!

hboy 13. Apr 2004 13:16

Re: Echte Mausklicks erkennen
 
GetAsyncKeyState(2) <> 0 ist wahr wenn die linke Maustaste gerdückt ist

GetAsyncKeyState(3) <> 0 ist wahr wenn die rechte Maustaste gerdückt ist

um Klicks zu erkennen würde ich nen Timer nehmen und die drückdauer festhalten.

Bon Apetit! :hi:

Tortus 13. Apr 2004 13:28

Re: Echte Mausklicks erkennen
 
Oder vielleicht nicht mehr als 3 Klicks auf ein und das selbe Pixel zulassen

sakura 13. Apr 2004 13:31

Re: Echte Mausklicks erkennen
 
Ein echtes Überprüfen einer Message (auch Mausklicks sind Messages) ist nicht möglich. Genauso wenig lässt sich die Herkunft überprüfen. Das ist eine der Schwächen vom Win32-Nachrichtensystem.

...:cat:...

Skiron 13. Apr 2004 13:50

Re: Echte Mausklicks erkennen
 
man könnt vielleicht noch den Maustreiber ansprechen, vielleicht dass der noch was weiß, aber das ist eher kompliziert

hboy 13. Apr 2004 14:28

Re: Echte Mausklicks erkennen
 
also: ich hab das nun mal getestet:

GetAsyncKeyState ermittelt leider auch nur den entgültigen stand nach Veränderung durch Messages
Jedoch: ein simulierter Mausklick ist bedeutend kürzer als ein "echter" durch den User ausgeführten. Vielleicht kann man die Mausklicks ja anhand davon überführen

himitsu 13. Apr 2004 14:33

Re: Echte Mausklicks erkennen
 
Ja klar, dann würde aber wieder jemand auf die Idee kommen eine kleine Pause einzufügen ;)

z.B.
Delphi-Quellcode:
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
Sleep(10);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

toms 13. Apr 2004 14:33

Re: Echte Mausklicks erkennen
 
Zitat:

Ein echtes Überprüfen einer Message (auch Mausklicks sind Messages) ist nicht möglich
Doch, man könnte die mouse_event() API hooken und so herausfinden, ob der User die
Mausgeklickt hat oder ob's per mouse_event() simuliert wurde.


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