Seite 1 von 2
Mausklick simulieren ohne Mausposition zu ändern? (WinAPI)
Verfasst: 23.09.2013 14:54
von Delle
Hallo,
aktuell lasse ich bei einem Tool (Automatisierung) so klicken:
Code: Alles auswählen
Procedure Linksklick(x,y)
SetCursorPos_(x,y)
mouse_event_(#MOUSEEVENTF_LEFTDOWN,x,y,0,0)
mouse_event_(#MOUSEEVENTF_LEFTUP,x,y,0,0)
EndProcedure
Ich als Admin will aber mit der Maus weiterhin arbeiten können, sie soll also nicht ständig wegspringen.
Ich kann natürlich immer zur vorherigen Mausposition zurückspringen lassen, aber elegant ist das natürlich nicht.
Gibt's daher irgendeine Möglichkeit bei Position X,Y klicken zu lassen, ohne die Maus dorthin zu positionieren?
Übrigens wozu braucht eigentlich mouse_event_() eigentlich die Angabe von Positionen? Das Klicken funktioniert doch sowieso nicht an X/Y wenn man SetCursorPos weglässt...
Danke,
Delle
Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP
Verfasst: 23.09.2013 15:28
von RSBasic
Was ist das Ziel deines Vorhabens?
Möchtest du vielleicht ein Klick-Event eines bestimmten Buttons auslösen?
Beispiel:
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(1, 10, 10, 100, 20, "Button", 0)
SendMessage_(GadgetID(1), #BM_CLICK, 0, 0)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 1
Debug "Hey, wie hast du das denn geschafft?"
EndSelect
EndIf
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Um die Handle-Nummer des gewünschten Buttons eines fremden Fensters zu ermitteln, kannst du das mit FindWindow_() und FindWindowEx_() oder mit Hilfe einer EnumWnd-Prozedur umsetzen.
Oder möchtest du auf was anderes klicken? Wenn ja, was?
Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP
Verfasst: 23.09.2013 15:46
von Delle
Hallo Ray,
ich lasse aktuell in einem Browserfenster (Firefox, kein Webgadget!) hintereinander auf 3 verschiedene Buttons klicken.
Das klappt soweit ganz gut, allerdings springt die Maus eben ständig hin und her.
Ich weiß jetzt auch nicht wie aufwendig das direkte Drücken der Buttons im Browser ist. Es handelt sich dabei glaub auch um eine Frameseite...
Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP
Verfasst: 23.09.2013 17:48
von Bisonte
Möchtest Du AUF einer Webseite Buttons drücken lassen, oder Buttons vom Firefox selbst (Zurück,Home usw.) ?
Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP
Verfasst: 23.09.2013 18:18
von Delle
Auf der Website

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP
Verfasst: 23.09.2013 20:16
von Bisonte
dann bietet sich doch eher an, per HTTP_POST/GET die seite zu beharken....
Also Seite Parsen... (die entsprechenden Daten für das Formular oder Button raussuchen) und die entsprechende aktion dort durchführen...
Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP
Verfasst: 24.09.2013 17:02
von Schranz0r
Da will wohl einer Farmen?!

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP
Verfasst: 24.09.2013 17:03
von Delle
Schranz0r hat geschrieben:Da will wohl einer Farmen?!

Nein, da will sich jemand lediglich monotone Arbeit ersparen

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP
Verfasst: 24.09.2013 18:41
von KeyKon
Ich nehme an an die Möglichkeit einfach ein dein Programm die Kommunikation mit dem Server direkt zu machen hast du bereits gedacht, aber Aufgrund des hohen Aufwands darauf verzichtet?
Technisch möglich sollte es auf jeden Fall sein, zum Beispiel bei Chrome Remote Desktop kann man immer noch ohne Einschränkungen die Maus benutzen, obwohl der Verbundene Klicks ausführt. Würde mich auf jeden Fall auch interessieren wenn du da eine Lösung findest
LG KeyKon
Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP
Verfasst: 24.09.2013 18:49
von Delle
KeyKon hat geschrieben:Ich nehme an an die Möglichkeit einfach ein dein Programm die Kommunikation mit dem Server direkt zu machen hast du bereits gedacht, aber Aufgrund des hohen Aufwands darauf verzichtet?
Wird schwierig, da die Inhalte dynamisch nachgeladen werden und sich auch öfter mal was ändert.
KeyKon hat geschrieben:Technisch möglich sollte es auf jeden Fall sein, zum Beispiel bei Chrome Remote Desktop kann man immer noch ohne Einschränkungen die Maus benutzen, obwohl der Verbundene Klicks ausführt. Würde mich auf jeden Fall auch interessieren wenn du da eine Lösung findest

Du meinst sowas wie Teamviewer oder? Ich vermute mal die Maus wird kurzzeitig an Position XY gesetzt und geklickt, danach wieder sofort an die ursprüngliche Position zurückmanövriert. Zumindest funktioniert das bei mir jetzt halbwegs, es fällt zumindest niemanden auf das die Maus für Millisekunden "woanders" war.