mouse_event - Linker Mausklick verfehlt das Ziel
Hallo,
Ich mach momentan grob folgendes:
Delphi-Quellcode:
1. Die Maus wird durch a) korrekt verschoben.
Mouse.CursorPos := Point(x,y); // a)
if <Bedingung> then begin mouse_event(MOUSEEVENTF_LEFTDOWN, Mouse.CursorPos.x, Mouse.CursorPos.Y, 0, 0); // b mouse_event(MOUSEEVENTF_LEFTUP, Mouse.CursorPos.x, Mouse.CursorPos.Y, 0, 0); end else begin mouse_event(MOUSEEVENTF_RIGHTDOWN, Mouse.CursorPos.x, Mouse.CursorPos.Y, 0, 0); // c mouse_event(MOUSEEVENTF_RIGHTUP, Mouse.CursorPos.x, Mouse.CursorPos.y, 0, 0); end; 2. Im Fall von c) wird der rechte Mausklick korrekt an dieser Stelle ausgeführt 3. Im Fall von b) wird die Maus erneut verschoben (An einen anderen Ort) und dann geklickt. ==> Natürlich an der falschen Stelle Verstehe gerade nicht das Problem. Ich habs auch schon mit MOUSEEVENTF_ABSOLUTE probiert, aber das hats eher noch schlimmer gemacht. Weiß vllt. jemand was das Problem sein könnte? |
AW: mouse_event - Linker Mausklick verfehlt das Ziel
Nutze evtl nicht das Objekt Mouse.
Ich habs immer mit SetCursorPos gemacht und in mouse_event immer die Positionsvariablen übergeben, die ich auch SetCursorPos übergeben hab. Hatte noch nie Probleme damit. |
AW: mouse_event - Linker Mausklick verfehlt das Ziel
Hallo,
Also Mouse.CursorPos kapselt ja SetCursorPos. Also dürfte das egal sein. Hab jetzt auch mal mouse_event meine berechnete Position übergeben... funktioniert allerdings trotzdem nicht.
Delphi-Quellcode:
Bin grad etwas ratlos. :gruebel:
Mouse.CursorPos := Point(x,y);
if <Bedingung> then begin mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0); end else begin mouse_event(MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0); mouse_event(MOUSEEVENTF_RIGHTUP, x, y, 0, 0); end; Edit: Noch was anderes.. Weiß nicht ob das vllt. zur Lösung beitragen könnte.. Ehrlich gesagt muss ich für einen rechtsklick die Taste 2x drücken (lassen). 1x bewirkt irgendwie nichts :/ |
AW: mouse_event - Linker Mausklick verfehlt das Ziel
Wohin soll der Klick denn gehn?
Probier mal:
Delphi-Quellcode:
Mouse.CursorPos := Point(x,y);
if <Bedingung> then begin Sleep(50); mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0); Sleep(50); mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0); end else begin Sleep(50); mouse_event(MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0); Sleep(50); mouse_event(MOUSEEVENTF_RIGHTUP, x, y, 0, 0); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 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