C++ und 4Story....

09/03/2011 18:37 Windos7#1
Hallo Comunity,
Ich habe ein Problem:
Ich möchte in C++ für 4Story einen Bot schreiben,
aber bei 4Story kommt nichts an.
Wenn ich z.b in ein Text-Dokument klicke und den Bot starte
Funktioniert es. Kann mir jemand von euch einen Tipp geben
unter Google habe Ich nichts gefunden ):

Der Code:
_SendKey(31, NULL, "4Story")

Hoffe das ihr mir helfen könnt :D
09/03/2011 18:58 cooler7878#2
Es liegt wahrscheinlich daran , dass das Fenster nicht aktiviert ist auf
msdn wird einem geraten über die FindWindow Funktion ein HWND(handle to a Window) zu erhalten dieses handle übergibst du dann der SetForegroundWindow Funktion und erst dann rufst du die SendKey Funktion auf
PseudoCode
Code:
HWND VictWind;
VictWind=FindWindow(null,"Das Spiel");
SetForegroundWindow(VictWind);
//Erst jetz
SendKey(was auch immer);
Falls es daran nicht liegt kann auch sein dass mit deinen Parametern was nicht stimmt.Ich benutze eigtl immer die SendInput Funktion und deshalb bin ich mir nich sicher
09/03/2011 19:42 Windos7#3
Danke für deine Schnelle Antwort :D
Ich Probiere es sofort mal aus

Also so geht es leider nur so halb :D
weil das spiel nimmt es selbst nicht an aber wenn ich in den Chat schreiben möchte schreibt er das was er soll.
09/04/2011 19:03 cooler7878#4
Sorry aber mit der Fehlerbeschreibung kann ich nun wirklich nichts anfangen.Vllt musst du zuerst auf die Textbox klicken!? Wenn das auch nicht hilft kannst du es mal über die SendInput Funktion probieren ,ich denke aber nicht , dass das hilft.
09/04/2011 19:45 Windos7#5
also er würde z.b. in den chat schreiben aber nicht mit 1 angreifen....
Halt nur in den Chat mehr nicht -.-
09/09/2011 22:56 Windos7#6
Ehm wäre cool wenn ihr mir noch weiter helfen könntet :D
09/10/2011 17:06 cooler7878#7
Das Problem liegt daran , dass das Fenster aktiviert ist und nicht die Textbox an die der Text gesendet werden soll du musst das Handle für die Textbox finden und sie dann aktivieren...
09/10/2011 18:54 Windos7#8
Ok aber wie finde ich das heraus weil z.b mit AutoIt geht es mit der normalen
send funktion ohne fenster aktivieren etc.
Aber warum mit C++ nicht ?
09/10/2011 21:55 Devil589#9
In AutoIt geht es auch nicht so einfach wie du beschrieben hast.
Wenn dann nutzt du da die ControlSend Funktion und diese will auch das Fensterhandle haben.
So ist es auch in C++, C++ will das Fensterhandle haben, damit es weiß wohin die Befehle gesendet werden sollen.
Wenn du aber in dem Spiel selber etwas in eine Textbox z.B. schreiben willst, musst du noch tiefer gehen.
Denn da musst du dann versuchen an die Controls innerhalb des D3D Windows (Spiele Fenster) zu kommen.
An sich ist die Sache etwas kompliziert und komplex aber es ist im Endeffekt viel mehr damit möglich.
Evtl. kann dir dieser Link hier etwas weiter helfen: [Only registered and activated users can see links. Click Here To Register...]
09/10/2011 22:21 Windos7#10
Nein ich möchte ja nicht in die Chat box schreiben oder soetwas ich möchte einfach nur 1 an das spiel senden.....
aber das kommt wohl nicht an
aber wenn ich enter drücke für den chat schreibt er 1 wenn ich ihn starte
und mit autoIt geht das mit
send("1")
09/11/2011 14:50 Devil589#11
Bei AutoIt und der Send Funktion muss das Fenster im Vordergrund sein.
Mit der ControlSend Funktion von AutoIt kann das Fenster auch im Hintergrund sein.
Aber wenn ich mich recht erinnere muss man sich das Windowhandle per Win API holen damit man überhaupt Zugriff auf das Fenster von dem jeweiligen Spiel bekommen kann.
Aber was spricht denn dagegen für so etwas einfaches (nur 1 Taste an das Fenster schicken) nicht einfach AutoIt zu nutzen?

See Ya!
09/12/2011 15:17 Windos7#12
Weil autoIt vom Hackshield erkannt wird :D
Ich werd den "Code" mal testen
09/12/2011 17:12 Devil589#13
Quote:
Originally Posted by Windos7 View Post
Weil autoIt vom Hackshield erkannt wird :D
Ich werd den "Code" mal testen
Beide Funktionen von AutoIt?
Also Send() und ControlSend().

See Ya!
09/12/2011 20:19 Windos7#14
Ja kennst du vlt. ein code der von C++ ist der gehen sollte ?