AutoIt Problem

03/17/2010 16:32 Deathpommes#1
Liebe Community,

ich habe versucht mit AutoIt einen kleinen Bot zu schreiben. Allerdings habe ich ein Problem mit der ControlSend Funktion. Autoit soll einen automatisch generierten Text an ein Fenster senden der in einer Variable gespeichert ist (das macht auch keine Probleme). Dazu habe ich eine Inputbox erstellt in die man den Fensternamen eingeben soll. Dieser soll daraufhin in einer Variable gespeichert werden. Nun weis ich nicht wie ich AutoIt dazu bringen kann den Text zu schreiben. Habe einiges ausprobiert, doch leider hat nichts funktioniert.
TuT´s haben mir auch nicht geholfen.

Das steht da z.Z.:

$input = InputBox("Bot", "Bitte Fensternamen eingeben")

ControlSend($input, "", , $text, 0)

Ich hoffe Ihr könnt mir sagen wie ich das ans laufen bringen kann.

mfg Nick
03/17/2010 16:43 HardCore.1337#2
ControlSend($Input1, "", , $text, 0) gibts nicht

Wenn schon, dann
ControlSend($Input, "", "", $Text)

und in der $Text steht auch was drine?
03/17/2010 16:48 Deathpommes#3
Erstmal danke für Deine schnelle Antwort! Ich möchte gerne, dass ich das Fenster in den Hentergrund legen kann und es weiter da reinschreibt. Das funktioniet aber nicht. Was mache ich falsch?

mfg Nick
03/17/2010 16:57 HardCore.1337#4
Namen richtig geschrieben?

So gehts richtig:
Code:
$Handle = "Guild Wars"
ControlSend($Handle, "", "", "W") <- drückt die taste W in Guild Wars
Wichtig ist, das fenster nicht zu minimieren sondern direkt zu verstecken
Code:
WinSetState($Handle, "", @SW_HIDE)
03/17/2010 17:16 Deathpommes#5
Also der großteil funktioniert schonmal. Wenn ich den Bot aber starte beendet sich das Fenster anstatt sich zu minimieren (hab den Editor genommen).

mfg Nick

PS: Hab Win 7 Pro 64Bit
03/17/2010 17:20 HardCore.1337#6
zeig mal deinen kompletten code
03/17/2010 17:23 Deathpommes#7
HotKeySet("{F8}", "start")
HotKeySet("{F9}", "stop")

$input = InputBox("Test", "Bitte Fensternamen eingeben")



While 1
Sleep(100)
WEnd



Func start()
While 1
$text = ""
For $i=0 to 6
$grosseBuchstaben = Random(65,90)
$kleineBuchstaben = Random(97,122)
$text = $text & Chr($grosseBuchstaben)
Next
Sleep(1000)
ControlSend($Input, "", "", $Text)

ControlSend ($input, "", "", "{enter}")

WEnd
EndFunc

Func stop()
Exit
EndFunc
03/18/2010 16:44 HardCore.1337#8
Du holst es mit WinSetState($Input1, "", @SW_SHOW) wieder her
03/18/2010 17:38 Deathpommes#9
Aber warum kommen die Tastenanschläge nicht bei dem Fenster an wenn ich es in den Hintergrund lege?
03/18/2010 17:51 HardCore.1337#10
Hintergrund oder minimiert?
03/18/2010 17:55 Deathpommes#11
Nur im Hintergrund. Habe schon öfters gelesen, dass man nicht minimieren darf.

mfg Nick
03/18/2010 17:56 HardCore.1337#12
genau. und was genau klappt da jetzt nicht? Kommt nix an oder wie?
Was soll den gedrückt werden?
03/18/2010 18:08 Deathpommes#13
Der Text (per Zufall generiert und dann ich einer Variable gespeichert) soll an ein Fenster gesendet werden. Damit ich das Fenster in den Hintergrund legen kann, habe ich ControlSend benutzt. Wenn ich starte, erscheint der Text auch im aktiven Fenster. Wenn ich das Fenster nun aber in den Hintergrund lege, geschieht nichts mehr. Mir ist aber gerade aufgefallen, dass wenn ich auf den Desktop klicke, nichts "herumspackt" wie wenn der Text nur an das Aktive Fenster gesendet würde. Für mich sieht es nun so aus als ob der Text zwar richtig gesendet wird aber nicht mehr ankommt sobald das Fenster im Hintergrund ist.

mfg Nick

PS: Ich hoffe Du verstehst was ich meine :D
03/18/2010 18:20 HardCore.1337#14
Mhh, also du hast das Chatfenster offen, startest das Script (es versteckt sich, arbeitet ControlSend ab und zeigt es wieder).
Jetzt gehste in GW schauen ob alle geklappt hat, das hat es aber nicht.

Weiß auch nicht woran das liegt
03/18/2010 18:23 Deathpommes#15
Genau so meine ich das. Nur das ich es noch nicht in GW probiert habe sondern nur mit Editor und Notepad.

EDIT:

Mir ist da gerade was eingefallen. Ich glaube, dass es nicht funktioniert weil das chatfenster nicht angeklickt ist. Kann man problemlos nen ControlKlick einbauen ohne das die restlichen Aktivitäten am PC gestört werden (ich meine damit das sich plötzlich die Maus bewegt, aber eigentlich dürfte das doch nicht passieren oder?)?

mfg Nick