Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Positionen durch Action merken und anklicken (https://www.delphipraxis.net/111988-positionen-durch-action-merken-und-anklicken.html)

Fussball-Robby 12. Apr 2008 23:20

Re: Positionen durch Action merken und anklicken
 
Such doch erstmal: Hier im Forum suchenSystemweiter HotKey, Hier im Forum suchenMausklick simulieren, [dp]Cursor ändern[/dp]

TonyR 12. Apr 2008 23:25

Re: Positionen durch Action merken und anklicken
 
Du kannst mit einem Timer auf einem geringen Interval prüfen, ob die Maustaste gedrückt ist, wenn ja, dann speicherst du die X und Y Position.
Delphi-Quellcode:
if getasynckeystate(vk_lbutton)<>0 then //speichern

Darksniper 13. Apr 2008 09:07

Re: Positionen durch Action merken und anklicken
 
Also ich habs jetzt fast aber wenn ich den Mausklick simulieren will dann springt die Maus immer nach recht unten in die Ecke und nicht an die Position an der sie klicken soll.
Wie kann ich das beheben?

So speichere ich die Positionen und füre dann die Klicks aus:
Delphi-Quellcode:
// wird beim Hotkey 1 ausgelöst
X1:=mouse.cursorpos.x;
Y1:=mouse.cursorpos.y;

// wird beim Hotkey 2 ausgelöst
X2:=mouse.cursorpos.x;
Y2:=mouse.cursorpos.y;

// wird beim Hotkey 3 ausgelöst
mouse_event(MOUSEEVENTF_LEFTDOWN, x1, y1, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, x1, y1, 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN, x2, y2, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, x2, y2, 0, 0);

TonyR 13. Apr 2008 14:53

Re: Positionen durch Action merken und anklicken
 
Probier's folgendermaßen:
Delphi-Quellcode:
// wird beim Hotkey 1 ausgelöst
X1:=mouse.cursorpos.x;
Y1:=mouse.cursorpos.y;

// wird beim Hotkey 2 ausgelöst
X2:=mouse.cursorpos.x;
Y2:=mouse.cursorpos.y;

// wird beim Hotkey 3 ausgelöst

Mouse.CursorPos := Point(x1, y1);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

Mouse.CursorPos := Point(x2, y2);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Edit: Die X und Y Werte von mouse_event scheinen Delta-Größen zu sein!?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.
Seite 2 von 2     12   

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