Mausklick in ein Fenster im Hintergrund

Für allgemeine Fragen zur Programmierung mit PureBasic.
bindya
Beiträge: 4
Registriert: 04.12.2014 23:14

Mausklick in ein Fenster im Hintergrund

Beitrag von bindya »

Hi,

ich versuche eine Mausklick in einem Hintergrund-Window zu realisieren ohne dabei die Mauspostion zu verändern.
D.h. der User soll normal weiter arbeiten können.

Hab schon ne Zeitlang gesucht und auch schon ansätze gefunden.
Leider fehlt mir der letzte Step :(

Ich denke das sollte per WinApi mit SendMessage_ funktionieren.
Einer im stackoverflow-Forum hat das scheinbar auch schon geschafft.
Quelle: http://stackoverflow.com/questions/2818 ... g-messages
Leider habe ich keinen Plan wie ich die X/Y Position in PB setzen kann.
Die WinApi-Library von RSBasic habe ich auch schon durchgestöbert leider nichts passendes gefunden.

Für nen Tip wäre ich dankbar.

LG,
Bindy
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Mausklick in ein Fenster im Hintergrund

Beitrag von RSBasic »

Möchtest du automatisiert auf einen bestimmten Button klicken?
Suchst du vielleicht sowas?: http://www.rsbasic.de/aktualisierung/wi ... ulieren.pb
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
bindya
Beiträge: 4
Registriert: 04.12.2014 23:14

Re: Mausklick in ein Fenster im Hintergrund

Beitrag von bindya »

Hi,

danke für deine schnelle Antwort und vor allem für deine coole WinApi Library :) Hat mir schon einige Male geholfen :allright:

Zu deiner Antwort:
Nein leider nicht. Ich habe im Hintergrund eine offenes game im Window-Mode. Dank WinApi kenne ich die Pos & Size des Windows.
In diesem Window möchte ich einen Button anklicken (Pos ist immer fix & berechenbar). Sind aber leider keine Windows-Buttons u. somit bekomme ich auch kein handle.

Daher muss ich nen Click auf ein X/Y-Position ausführen.
Wenn ich den Codesnippet von deiner Seite hernehme, funktioniert das wunderbar. http://www.rsbasic.de/aktualisierung/wi ... ulieren.pb

Allerdings bewege ich hiermit, wie du weißt "tatsächlich" die Maus und das würde ich gerne (wenn möglich) umgehen.

LG
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Mausklick in ein Fenster im Hintergrund

Beitrag von NicTheQuick »

Läuft dieses Game in einem DirectX-Screen oder ist das womöglich etwas vergleichbares zu dem 'CanvasGadget()' in PB? Falls es letzteres ist, sollte man das Handle dieses Gadgets bekommen können und diesem einen Mausklick vorgaukeln können. Falls es aber ein DirectX- oder OpenGL-Screen sein sollte, dann ist wohl etwas mehr Spezialwissen erforderlich. Und sehr wahrscheinlich werden diese Frameworks es auch nicht ohne Komplikationen zulassen, dass eine fremde Anwendung versucht in ihnen herum zu klicken.
bindya
Beiträge: 4
Registriert: 04.12.2014 23:14

Re: Mausklick in ein Fenster im Hintergrund

Beitrag von bindya »

Jepp DX-Window.
Allerdings folgendes funktioniert im Hintergrund.

Code: Alles auswählen

SendMessage_(lngWindowHandle, #WM_KEYDOWN, Asc(strKey), 0)
Delay(Random(100,50))
SendMessage_(lngWindowHandle, #WM_CHAR, Asc(strKey), 0)
Delay(Random(100,50))
SendMessage_(lngWindowHandle, #WM_KEYUP, Asc(strKey), 0)
Daher gehe ich aus, das es auch mit der Maus funktionieren sollte.
bindya
Beiträge: 4
Registriert: 04.12.2014 23:14

Re: Mausklick in ein Fenster im Hintergrund

Beitrag von bindya »

Niemand ne Idee? :(
Antworten