Taste, die durch Variable bestimmt wird, X mal ausgeben

  • Hey Leute, ich habe folgendes Problem:

    Func A
    ControlSend($windowname,"","","{3 50}")
    EndFunc

    Drückt die taste 3 50x. Ohne Probleme. Aber:

    $variable1 = InputBox("Variable","Gib Variable ein" )

    Func A
    ControlSend($windowname,"","","{$variable1 50}")
    EndFunc

    Drückt, wenn ich z.B in die InputBox 3 eingebe, die Taste 4 1x anstatt die Taste 3 50x.

    Hab ich hier einen Denkfehler, oder verstehen sich $variable1 & 50 nicht?


    Dieser ganze Versuch entstand so, dass ich ursprünglich einen Befehl - in diesem Fall:
    ControlSend($windowname,"","","{$variable1}")
    X mal ausgeben wollte, aber nicht wusste wie. X mal den Befehl in die Funktion zu kopieren kam dann sogar mir zu unprofessionell vor :D

    MfG

  • wenn du "{$variable1}" nutzt, wird nichts für $variable1 eingesetzt, sondern der String "Variable1" an die funktion weitergegeben.Da es die Taste "Variable1" nicht gibt wird nur "1" genommen...

    So setzt du den Wert der Variable ein:

    [autoit]

    ControlSend($windowname,"","","{" & $variable1 & " 50}")

    [/autoit]

    Edit: Frag mich jetzt nicht warum aus "Variable" und "1" {4 1} wird X/

  • Hi,
    schau dir mal an, wie man Scripte debugged! Und dabei würde helfen, wenn du dir bei dieser Gelegenheit in der Hilfe (gibts auch auf Deutsch! ) den Abschnitt über die Datentypen zu Gemüte führst.

    In deinem Beispiel mit der $variable schreibst du nicht den WERT 50 der Variablen in den String, sondern den Text "$variable1"
    Um Strings und Werte miteinander zu verbinden, benutzt man in AutoIt das & - Zeichen

    [autoit]

    ,"{" & $variable1 & " 50}"

    [/autoit]