AutoIT Frage

02/19/2009 12:46 SynT@x#1
Hi liebe elitepvpers Community ich habe seit kurzem angefangen mit dem (aus meiner Sicht) genialem Programm AutoIT und habe nun eine Frage ;)

Gibt es einen Befehl für AutoIT wo der Script den ich geschrieben habe nur in einem INAKTIVEM Fenster ausführt

Z.B

Ich minimier das Spiel oder es ist im Hintergrund doch der Bot läuft weiter und zwar nur in diesem Fenster (obwohl es inaktiv ist)


Ich hoffe ihr versteht was ich meine
Hoffe mir kann einer helfen

MfG
SynT@x
02/19/2009 13:07 N.E.O.#2
Ja, allerdings!

Diese Befehle fangen alle mit Control an.

Hier ein paar:

PHP Code:
ControlClick "title""text"controlID [, button [, clicks [, [, ]]]] )

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

ControlMove "title""text"controlIDx[, width [, height]] )

ControlDisable "title""text"controlID)

ControlEnable "title""text"controlID 

Das sind die Bot relevanten ;).
02/19/2009 13:10 SynT@x#3
Wow thx ;9
wäre nett wenn du mir das bitte noch erklären könntest da ich ein absoluter Neuling bin was die Befehle angeht ;)
02/19/2009 13:21 N.E.O.#4
Ok, nehmen wir z.B. ControlSend.

Hierbei brauchst du das Autoit WIndow Info Tool, was du in deinem AutoIt Ordner findest.


PHP Code:
ControlSend "title""text"controlID"string" [, flag] ) 

Für z.B. WoW brauchst du hierbei nur: "title" & "string" (unter Umständen auch controlID, diese findest du mit dem AutoIt Window Info Tool heraus).


"title" = Wie das Fenster heisst, an das der Befehl geschickt werden soll. (Wird auch gerne mit der Variablen $hWnd abgekürzt.

"string" = Das, was du senden willst. Z.B. eine Taste, dann sieht das so aus:


PHP Code:
$hWnd "World of Warcraft"


ControlSend($hWnd,"","","{B}")  ;um das Inventar zu öffnen 

Wenn du z.B. einen Satz senden willst musst du das so machen:


PHP Code:
$hWnd "World of Warcraft"  brauchen wir nicht zwingend!

ControlSend($hWnd,"","","{ENTER}") ; Um den Chat zu öffnen
Sleep
(Random(500,700))
ControlSend($hWnd,"","","Hallo Leute!")
Sleep(Random(700,1000))
ControlSend($hWnd,"","","{ENTER}"

Für $hWnd kann auch einfach "World of Warcraft" geschrieben werden.
Dafür brauchst du die Variable aber nicht mehr "Declairen".
02/19/2009 13:27 °Remus°#5
da der threadersteller sich bis jetzt hauptsächlich im metin2 bereich aufgehalten hat denke ich das er das da auch anwenden will, aber mit controlsend kommt man da nicht weit ich hab es auch schon mit diversen includes und dll calls versucht aber bin zu keinem nutzbaren ergebnis gekommen
02/19/2009 13:30 N.E.O.#6
Kurzform für alle Befehle:


PHP Code:
ControlClick "title""text"controlID [, button [, clicks [, [, ]]]] )  ; führt einen Klick im hintergrund aus.

ControlSend "title""text"controlID"string" [, flag] ) ; Sendet eine Taste(nim Hintergrund.

ControlMove "title""text"controlIDx[, width [, height]] ) ; Maximiertminimiert ein Fenster auf eine Beliebige Größe.

ControlDisable "title""text"controlID) ; Versteckt ein Fenster.

ControlEnable "title""text"controlID ) ; Zeigt ein fenster

@Remus: Hast du es schonmal mit den einzelnen ControlID's versucht?
02/19/2009 14:59 Computerfreek#7
In Metin2 lassen sich die ID's nur sehr schwer bis garnicht herausfinden, ansonsten wäre das kein Problem.
02/19/2009 15:00 SynT@x#8
Ok thx mh wollte noch fragen ob ich dich anschreiben kann falls ich Probleme habe ;)
Und ja will für metin2 nen Bot schreiben ^_^
02/19/2009 16:13 N.E.O.#9
Ja, kannste ;)