Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Anwendung reagiert nicht auf mouse_event (https://www.delphipraxis.net/160983-anwendung-reagiert-nicht-auf-mouse_event.html)

MechMac666 10. Jun 2011 18:19

Anwendung reagiert nicht auf mouse_event
 
Hallo,

kurz zur Vorgeschichte:
"Damals" gab es zu dem Spiel Command&Conquer Zero Hour einen WorldBuilder mit dessen Hilfe man eigene Karten erstellen konnte.
Da ich die Karten aber nie so ganz symmetrisch hinbekomme, habe ich mir ein Programm gebastelt, welches, ähnlich wie bei einer Werkzeugmaschine, Koordinaten abfährt. Die Maus wird quasi ferngesteuert und "malt" die Landschaft für mich.
Klicks habe ich bisher mit
mouse_event(MOUSEEVENTF_LEFTDOWN, startx, starty, 0, 0);
realisiert.

Nun ist letztens eine Modifikation für das Spiel publiziert worden, welches auch den Karteneditor um neue Objekte erweitert.
Der WorldBuilder (10MB) wird durch ein seltsames Miniprogramm (47KB) gestartet. Was da genau passiert, weiß ich nicht.
Seitdem funktioniert das mouse_event nicht mehr.

Nun würde mich interessieren, wie ich es dennoch hinbekomme. Gibt es Alternativen zu der von mir verwendeten Methode?

Gruß, Andreas



Edit:

wenn ich mit dem Programm AutoIT folgendes mache, klappt das auch nicht:
MouseMove(500, 500)
MouseClick("left")

himitsu 10. Jun 2011 20:42

AW: Anwendung reagiert nicht auf mouse_event
 
Man kann, als Programm auch via DirectX und Co. auf die Mauseingaben reagieren,
werte die Direkt-Input-Kanäle aus
oder geht gleich auf den Maustreiber los ...

Und davon geht nichts über diese Messages, bzw. diese Messages werden irgendwann mal davon gefeuert ... heißt also, die kannst senden was du willst, wenn das Programm schon an früheren/tieferen Stellen auf die Maus reagiert und es deine Messages nicht die Bohne interessiert.


PS: Sowas machen Spielehersteller gerne mal, damit nicht jeder "Pimp" deren Programme fernsteuern kann.


Fazit: Erstmal wäre es nicht schlecht rauszfinden, wo das Programm seine infos herbekommt und wenn es dann soweit ist, dann kann es auch mal recht schwer werden dorthin überhaupt etwas zu senden.

MechMac666 11. Jun 2011 19:29

AW: Anwendung reagiert nicht auf mouse_event
 
Hallo,

Also die Modifikation kommt nicht vom Hersteller, eine Gruppe von Fans hat die erstellt. Was die kompilierten Objekte betrifft, diese wurden nicht geändert.

Der ursprüngliche Karteneditor war "fernsteuerbar". Erst durch die Mod. klappt das nicht mehr. Vermutlich weil da das Zusatzprogramm, welches
den ursprüngliche Karteneditor "füttert", das entweder absichtlich oder zufällig blockiert. Ich denke eher letzteres, da es völlig sinnfrei ist, das zu verwehren.

EWeiss 12. Jun 2011 09:21

AW: Anwendung reagiert nicht auf mouse_event
 
wenn die funktionen über Tastatur funktionieren die du mit der Maus emulieren willst.
Dann versuche es mal mit SendInput.

gruss

MechMac666 12. Jun 2011 14:58

AW: Anwendung reagiert nicht auf mouse_event
 
Die Funktion besteht ausschließlich aus Maustaste-drücken und Cursor bewegen. Quasi so als wenn man in MsPaint etwas Programmgesteuert malen würde.
Nur... ohne Klick, kein Strich :-)

EWeiss 12. Jun 2011 19:10

AW: Anwendung reagiert nicht auf mouse_event
 
Zitat:

Zitat von MechMac666 (Beitrag 1105955)
Die Funktion besteht ausschließlich aus Maustaste-drücken und Cursor bewegen. Quasi so als wenn man in MsPaint etwas Programmgesteuert malen würde.
Nur... ohne Klick, kein Strich :-)

Dir ist aber schon klar für was SendInput steht?
Zitat:

Synthesizes keystrokes, mouse motions, and button clicks.
SendInput

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz