Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Virtuellen Klick in einem Spiel simulieren (https://www.delphipraxis.net/89311-virtuellen-klick-einem-spiel-simulieren.html)

RXR-Max 16. Apr 2007 15:00

Re: Virtuellen Klick in einem Spiel simulieren
 
http://www.delphipraxis.net/internal...t.php?t=107940

ich hatte ein ähnliches problem. ich wollte das die maus einen klick simuliert wenn ich über einer bestimmten farbe bin. das funktioniert in jeder anderen anwendung ich habs ja ausprobiert! was nachher rausgekommen ist musst du einfach ein bischen umschreiben (der letzte beitrag mit dem beispielcode auf seite 3) damit die maus halt nicht auf farbe reagiert sondern auf das ereignis deiner wahl. viel glück...

tweetymr 16. Apr 2007 15:51

Re: Virtuellen Klick in einem Spiel simulieren
 
Aber brauch ich da nicht auchden fokus auf dem entsprechenden fenster?
Und ich will ja mit der maus nebenher was anderes machen, also darf diese nich "wirklich" wandern^^

oder hab ich deinen code falsch interpretiert?
und wie funktioniert das mit der WM_MOUSE* Anweisung wie DGL-luke meinte?

Apollonius 16. Apr 2007 16:45

Re: Virtuellen Klick in einem Spiel simulieren
 
Du kannst an das Handle eines Buttons auf jeden Fall eine BM_Click-Nachricht schreiben- schau einfach mal in der Delphi-Hilfe.
Außerdem gibt es noch die Möglichkeit, direkt das Parent zu informieren:
dsdt

cruiser 16. Apr 2007 17:27

Re: Virtuellen Klick in einem Spiel simulieren
 
Laut WinAPI:

Code:
PostMessage(HWND, [color=#ff0000]*[/color]WM_LBUTTONDOWN, [color=#00ff00]*[/color]0, MakeLParam(Pos.X, Pos.Y));

[color=#ff0000]*[/color] Maustastenaktion - Mögliche Werte:
WM_LBUTTONUP
WM_LBUTTONDOWN
WM_LBUTTONDBLCLK
WM_RBUTTONUP
WM_RBUTTONDOWN
WM_RBUTTONDBLCLK
WM_MBUTTONUP
WM_MBUTTONDOWN
WM_MBUTTONDBLCLK

[color=#00ff00]*[/color] Zusätzlich gedrückte Taste(n) - Mögliche Werte:
MK_CONTROL
MK_LBUTTON   
MK_MBUTTON   
MK_RBUTTON   
MK_SHIFT   
oder or-Verknüpfungen von mehreren

willnix 16. Apr 2007 18:25

Re: Virtuellen Klick in einem Spiel simulieren
 
Dein Probelem ist, dass alle dein bisherigen Methoden auf eier neu Positionierung des Mauszeigers und einem anschließenden Klick basieren.
Du solltest einfach mit WinSpy das Handle des entsprechenden Buttons (oder was auch immer) suchen und dies dann in deinen Code übernehmen.
Jetzt kannst du dann mit SendMessage die Messagees WM_LBUTTONUP und WM_LBUTTONDOWN (infos in der MSDN) wie schon von anderen vorgeschlagen an die entsprechende Komponente schicken.
Eventuel musst du dann direkt danach eine Funktion einbauen um das Fenster wieder zu minimieren, denn es könnte eventuell den Fokus auf sich ziehen wenn du einen Klick simulierst.
Willnix

tweetymr 16. Apr 2007 23:37

Re: Virtuellen Klick in einem Spiel simulieren
 
also ich hab kein Handle für einen Button rausfinden können. Nur das Handle für das fenster.
Das hab ich raus bekommen:
Klasse: l2UnrealWWindowsViewportWindow
Handle: 197618
Window Handle: 0x000303F2

Bringt mich das irgendwie weiter? :zwinker:

cruiser 17. Apr 2007 15:42

Re: Virtuellen Klick in einem Spiel simulieren
 
Probier doch einfach den Klick an das Window-Handle zu senden... sprich ein Down und ein Up. Beachte aber, dass du mit absoluten und nicht mit relativen koordinaten auf das fremde Fenster klickst.

Apollonius 17. Apr 2007 15:47

Re: Virtuellen Klick in einem Spiel simulieren
 
Wie hast du nach dem Button gesucht? Mit findwindowex()? Mit welchen Parametern (es gibt die Klasse Button, die Klasse TButton...)?

tweetymr 17. Apr 2007 17:47

Re: Virtuellen Klick in einem Spiel simulieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
@cruiser:
Wie meinst du das mit den absoluten koordinaten? Wie sieht das aus? oO

@Apollonius:
Ich hab garnicht danach gesucht, ich hab das mit WinSpy (wie empfohlen) gemacht.
Kann mal nen screen anhängen, was WinSpy dazu zu sagen hat. Achso: Wenn ich da dann auf code generieren gehen, kann ich ewig warten und kommt doch kein ergebnis :S

willnix 17. Apr 2007 20:28

Re: Virtuellen Klick in einem Spiel simulieren
 
Hast du dir mal alle Childs dieses Fensters anzeigen lassen, oder mal versucht linage mit irgendeinem parmater oder so in nem Fenster zu starten, dann kannst du mit WinSpy vlt. doch das Handle des Buttons finden.
Willnix


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

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