Mausklick simulieren ohne Mausposition zu ändern? (WinAPI)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Mausklick simulieren ohne Mausposition zu ändern? (WinAPI)

Beitrag 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
PB 6.21 | Win 11
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP

Beitrag 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?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP

Beitrag 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...
PB 6.21 | Win 11
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP

Beitrag von Bisonte »

Möchtest Du AUF einer Webseite Buttons drücken lassen, oder Buttons vom Firefox selbst (Zurück,Home usw.) ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP

Beitrag von Delle »

Auf der Website ;)
PB 6.21 | Win 11
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP

Beitrag 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...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Schranz0r
Beiträge: 22
Registriert: 11.09.2013 19:09

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP

Beitrag von Schranz0r »

Da will wohl einer Farmen?! :shock:
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP

Beitrag von Delle »

Schranz0r hat geschrieben:Da will wohl einer Farmen?! :shock:
Nein, da will sich jemand lediglich monotone Arbeit ersparen ;)
PB 6.21 | Win 11
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP

Beitrag 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
(\/) (°,,,°) (\/)
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Mausklick simulieren ohne Mausposition zu ändern? (WinAP

Beitrag 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.
PB 6.21 | Win 11
Antworten