Frage ControlSend Problem

04/11/2012 20:01 ChilloutFuzi#1
Hallo,
Ich habe ein "Bot" geschrieben und es funktioniert alles außer wenn ich die Taste die gesendet werden soll Manuell Fest gelegt werden soll.
Ändere ich die Taste in AutoIt funktioniert alles sobal ich es manuell machen will geht es nicht.
Code:
$fenstername= InputBox("Fenstername", "Bitte geben sie einen Fensternamen ein","FLYFF")
$Zeit = InputBox("Interval","Interval in Millisekunden","5000")
$taste= InputBox("Taste", "Bitte geben sie eine F-Taste ein","F4")
$handle  = WinGetHandle($fenstername, "") ;un dann darauf zugreifen
toolTip("Der Bot läuft Er sendet die gewählte Taste um zu beenden drücke ESC",0,0)
HotKeySet("{Esc}","Ende")
Func Ende ()
   While 2
	  Exit
   WEnd
EndFunc

While 1
   ControlSend($fenstername,'','',"{$taste}")
   Sleep($Zeit)
WEnd
Bitte um Hilfe mir geht um die Zeile:
Code:
ControlSend($fenstername,'','',"{$taste}")
und diese:
Code:
$taste= InputBox("Taste", "Bitte geben sie eine F-Taste ein","F4")
04/11/2012 20:56 K1ramoX#2
ControlSend($fenstername,'','',"{$taste}")

ist schön falsch. Wenn dann:

ControlSend($fenstername,"", "", $taste)
04/11/2012 20:58 ChilloutFuzi#3
Das hab ich dann gemacht dann wird aber in dem Spiel F und danach 4 gedrückt
04/11/2012 21:13 omer36#4
ControlSend($fenstername,"", "", "{" & $taste & "}" )

bzw.

ControlSend($fenstername,"", "", '"{' & $taste & '}"' )
04/11/2012 21:17 ChilloutFuzi#5
danke ich werde es gleich testen

//Edit:
jetzt sendet es garnichts mehr:
Quote:
$fenstername= InputBox("Fenstername", "Bitte geben sie einen Fensternamen ein","FLYFF")
$Zeit = InputBox("Interval","Interval in Millisekunden","5000")
$taste= InputBox("Taste", "Bitte geben sie eine F-Taste ein","F4")
$handle = WinGetHandle($fenstername, "") ;un dann darauf zugreifen
toolTip($fenstername & "Bot läuft, zum beenden drücke ESC",0,0)
HotKeySet("{Esc}","Ende")
Func Ende ()
Exit
EndFunc

While 1
ControlSend($fenstername,"", "", '"{' & $taste & '}"' )
Sleep($Zeit)
WEnd
04/11/2012 23:56 Achat#6
Code:
Opt('WinTitleMatchMode', 2) ;2 = Match any substring in the title

$sFenstername = InputBox('Fenstername', 'Bitte geben sie einen Fensternamen ein', 'FLYFF')
$iZeit = InputBox('Interval', 'Interval in Millisekunden', '5000')
If not StringIsAlNum($iZeit) Then Exit ; Wenn man bei der Input Box keine Zahlen eingibt, dann beenden (sonst error)
$sTaste = InputBox('Taste', 'Bitte geben sie eine F-Taste ein', 'F4')
$hFenstername=WinGetHandle($sFenstername) ;holt sich den ganzen Fensternamen
ToolTip($sFenstername & ' Bot läuft, zum beenden drücke ESC', 0, 0)
HotKeySet('{Esc}', 'Ende')

AdlibRegister('_bot', $iZeit) ;_bot() wird alle $iZeit Millisekunden ausgeführt

While 1
	Sleep(10)
WEnd


Func Ende()
	AdlibUnRegister('_bot') ;Bot wird nun nicht mehr ausgeführt.
EndFunc   ;==>Ende


Func _bot()
	ControlSend($sFenstername, '', $hFenstername,Execute(String('"{'&$sTaste&'}"')))
EndFunc   ;==>_bot
ControlSend gibt 1 zurück aber bei mir passiert nichts :O
Weiß jemand mehr?
Edit: Es scheint zu funktionieren.
Edit2: Kommentare hinzugefügt
Edit3


Quote:
Originally Posted by ChilloutFuzi View Post
[CODE]
ControlSend($fenstername,'','',"{$taste}")
Für Strings immer ' benutzen ;) - sonst bekommst du Probleme wenn du " in einem String hast.
04/12/2012 00:43 ChilloutFuzi#7
Also irgendwie sendet es bei mir nix kann dir nicht sagen warum,
Habe genau deinen Code kopiert

Bin noch Ziemlich neu was AutoIt angeht
04/12/2012 00:58 Achat#8
Was hast du denn bei der InputBox von $sTaste eingegeben?
04/12/2012 01:26 ChilloutFuzi#9
Ja einfach F4


//Gelöst
Lag an dem Spiel sonst gehts