Metin2 Pickup Bot Autoit

11/30/2009 20:29 prustel#1
Mein Code sieht bis jetzt so aus:
Code:
HotKeySet("{F10}", "start")
HotKeySet("{ESC}", "Terminate")
WinActivate("METIN2")
while 1
	sleep(100)
WEnd
;Aufheben
Func start()
	Send("{F1}") ; nur als beispiel eben
EndFunc

Func Terminate()
    Exit 0
EndFunc
Aber Metin2 nimmt NIE, aber wirklich Nie auch nur eine Taste an, die per Send geschickt wird.
Egal welche ich versuche drücken zu lassen, Metin2 (metin35 pserver) nimmt diese nicht an.

Wie macht man, das Metin2 auch geschickte tastenbefehle annimmt?!
Zb das man auch im Chat vorgeschriebene Sachen abschicken kann.

Vielen Dank;)
11/30/2009 20:36 XxBestxX#2
schonmal was von controllsend gehört ?
11/30/2009 20:38 prustel#3
Nein, aber danke werd es mir mal angucken ;)
11/30/2009 20:40 XxBestxX#4
Quote:
Originally Posted by prustel View Post
Nein, aber danke werd es mir mal angucken ;)
falls du die hilfe nicht hast hier :

PHP Code:
Funktionsreferenz
ControlSend 
--------------------------------------------------------------------------------

Sendet eine Folge von Zeichen (Tastendrücken) an ein Steuerelement


ControlSend 
( "title", "text", controlID, "string" [, flag] )


 

Parameter

title Der Titel des Fensters
, auf das zugegriffen werden soll. 
text Der Text des Fensters, auf das zugegriffen werden soll. 
controlID Das zu beeinflussende Steuerelement. Siehe Steuerelemente. 
string Folge von Zeichen, die zu dem Steuerelement gesendet werden soll. 
flag [optional] Ändert die Bedeutung der "Tastendrücke":
  
flag = 0 (Standard); Der Text enthält spezielle Zeichen wie "+" für SHIFT sowie {LEFT}, um den linken Pfeil zu kennzeichnen.
  
flag = 1; Tasten werden als RAW-Format (unbearbeitet) gesendet. 

 

Rückgabewert

Erfolg
: Gibt 1 zurück. 
Fehler: Gibt 0 zurück, falls das Fenster bzw. Steuerelement nicht gefunden wurde. 

 

Bemerkungen

ControlSend arbeitet ähnlich wie Send
, aber es kann Tastendrücke direkt an ein beliebiges Fenster bzw. Steuerelement senden und nicht nur an das gerade aktive Fenster.

Nur bei Kommandozeilen-Fenstern (DOS-Boxen) arbeitet ControlSend unzuverlässig, weil diese anders funktionieren als normale Fenster (scheint physische Zustände zu überprüfen, anstatt die Zeichenfolge entgegen zu nehmen).
Bei normalen Fenstern sollte ControlSend wesentlich zuverlässiger als ein normaler "Send" arbeiten. - Und ja, es kann wirklich Shift, Ctrl, Alt usw. senden.

Wie bereits in der Hilfe zum "Send"-Befehl erwähnt, können keine Tastaturen simuliert werden, die unterschiedliche Zeichen senden, je nachdem, ob sie im CAPS-LOCK oder SHIFT-Modus sind (z.B. die tschechische Tastatur). Zur Problemumgehung sollte die Funktion ControlSetText verwendet werden.

Auf das Steuerelement muss möglicherweise zuerst mit dem ControlFocus-Befehl ein Fokus gesetzt werden, besonders wenn es mit einer ControlID angesprochen wird, die von dem Skipt selbst erzeugt wurde.

Opt("SendKeyDelay",...) ändert die Länge der kurzen Pause zwischen den gesendeten Tastenzeichen.
Opt("SendKeyDownDelay",...) ändert die Zeitdauer, wie lange eine Taste gedrückt bleibt, bevor sie wieder gelöst wird.


 

Verwandte Funktionen

ControlCommand
, Send, ControlSetText, ControlFocus, SendKeyDelay (Option), SendKeyDownDelay (Option) 
 

Beispiel


ControlSend
("Unbenannt", "", "Edit1", "Dies ist eine Zeile mit Text im Editor Fenster") 
11/30/2009 20:44 Dimension0x00#5
nimm mal das WinActivate raus und setzt in die start Funktion noch ne while schleife
11/30/2009 20:53 prustel#6
Das selbe Problem hatte ich schon bei meinen Angelbot, der will trotzdem keine Taste annehmen.

Mein jetziger Code:
Code:
HotKeySet("{F10}", "start")
HotKeySet("{ESC}", "Terminate")
while 1
	sleep(100)
WEnd
;Aufheben

Func start()
	ControlSend("METIN2","","",("{F1}"));
EndFunc



Func Terminate()
    Exit 0
EndFunc
Ich hoffe ich habe Controlsend richtig benutzt.
Bin neu bei Autoit :P
Ich verstehe nie wo mein Problem ist, also erkennt er das Metin35 Fenster mit dem Titel METIN2 nicht? Oder mach ich was anderes Falsch.

Wenn ich das wüsste könnte ich auch endlich den Angelbot weiter machen *-*
11/30/2009 21:09 XxBestxX#7
Quote:
Originally Posted by prustel View Post
Das selbe Problem hatte ich schon bei meinen Angelbot, der will trotzdem keine Taste annehmen.

Mein jetziger Code:
Code:
HotKeySet("{F10}", "start")
HotKeySet("{ESC}", "Terminate")
while 1
	sleep(100)
WEnd
;Aufheben

Func start()
	ControlSend("METIN2","","",("{F1}"));
EndFunc



Func Terminate()
    Exit 0
EndFunc
Ich hoffe ich habe Controlsend richtig benutzt.
Bin neu bei Autoit :P
Ich verstehe nie wo mein Problem ist, also erkennt er das Metin35 Fenster mit dem Titel METIN2 nicht? Oder mach ich was anderes Falsch.

Wenn ich das wüsste könnte ich auch endlich den Angelbot weiter machen *-*
bin auch neu in autoit ... das mit dem controlsend kann ich dir nicht beantworten obs richtig ist ( glaube aber nicht ^^ ) spielst du auf metin35 oder wie ? dann musst du natürlich als fensternamen metin35 nehmen ^^
11/30/2009 21:11 prustel#8
Fenstername ist aber METIN2 ^^

Ich hoffe da mal ein erfahrener Bot schreiber hier kommt und mir helfen kann, weil ich habe Bots gefunden, mit den selben Funktionen, aber sogar die funktionieren nichtmal bei mir.
11/30/2009 21:43 MoepMeep#9
PostMessage?

btw, falsche section. Muss ja echt schwer sein, die autoit section zu finden.
11/30/2009 23:24 prustel#10
Quote:
Originally Posted by MoepMeep View Post
PostMessage?

btw, falsche section. Muss ja echt schwer sein, die autoit section zu finden.
Postmessage?

Wieso falsche section?
Hir ist doch extra für Hacking & Coding.
Autoit ist für mich auch wie programmieren und neh Autoit section kenn ich hier nicht.

btw. Wär echt nett, wenn mir jemand sagen könnte warum der Code nicht läuft.
Liegt es daran das ich die 2007 Version von Metin benutze?
12/01/2009 20:48 MoepMeep#11
[Only registered and activated users can see links. Click Here To Register...] Kauf dir ne brille ;)
12/02/2009 15:35 xWaffeleisen#12
C++ Dll Injection FTW :handsdown:

AutoIt :facepalm:
12/02/2009 15:46 MoepMeep#13
Quote:
Originally Posted by xWaffeleisen View Post
C++ Dll Injection FTW :handsdown:

AutoIt :facepalm:
Und warum dll? Kannst funktionen auch ohne dll hooken ;)
12/02/2009 21:11 Lawliet#14
[Only registered and activated users can see links. Click Here To Register...]
12/04/2009 17:18 Xereon#15
Quote:
Originally Posted by MoepMeep View Post
PostMessage?

btw, falsche section. Muss ja echt schwer sein, die autoit section zu finden.
Wird bei ControlSend nicht PostMessage gecallt?
Was macht es dann, wenn ich Fuknitonen aus ner DLL calle(was ein Anfänger glaube ich nciht hinbekommen würde), oder das AutoIT Api nutze?