GUI mit Feldern zum Variablen eintragen

  • Hallo,
    ich habe gestern angefangen mich mit autoit zu beschäftigen...
    Bis jetzt bin ich soweit gekommen, dass ich eine GUI erstellt habe mit einem Button zum Script starten.
    Nun möchte ich jedoch Felder der GUI hinzufügen, in die ich Variablen eintragen kann, die dann in meinem Code übernommen werden.

    Um das mal zu verdeutlichen, hier ein Teil meines "Codes" in den ich eine variable einbauen möchte.

    Sleep (1000)
    Send ("{TAB 11}{ENTER}")

    Dabei möchte ich nun die 11 durch eine Variable ersetzen, die ich in ein Feld in der GUI eintrage.
    Wäre nett wenn mir das jemand erklären könnte... wie gesagt, ich beschäftige mich erst seit gestern mit Autoit.

    mfg

    Einmal editiert, zuletzt von ghost! (26. Februar 2008 um 18:40)

  • Habe mir die beiden Sachen durchgelesen, aber verstehe es leider nicht ganz :(
    Könntest du mal den Code posten den ich für mein Beispiel bräuchte?
    mfg

  • [autoit]

    GUICreate("TEST", 100, 100)
    $input = GUICtrlCreateInput("", 10, 10, 100, 20)
    $button = GUICtrlCreateButton("Auslesen", 50, 50, 50, 20)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $button
    $read_input = GUICtrlRead($input)
    MsgBox(0, "Ausgabe", $read_input)
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

    [/autoit]


    nich getestet aber sollte so in der art funktionieren^^

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Danke für den Code Firefly, aber das löst leider nicht mein Problem, dass ich in meinem Code

    [autoit]

    Send ("{TAB 11}{ENTER}")

    [/autoit]


    Die 11 durch eine Variable ersetzen möchte, die ich in meinem GUI eingebe.

  • [autoit]


    $Input = GUICtrlCreateInput("", 10, 10, 100, 20)
    Send("{TAB " & GUICtrlRead($Input) & "}")
    Send ("{ENTER}")

    [/autoit]

    Natürlich das Guictrlread iwo in eine Whileschleife setzen, sonst wird er gleich am Anfang den Wert auslesen, der dann natürlich "" ist weil du da ja noch nichts eingegeben hast und schneller als das Programm wirst du nicht sein ;).
    Also so z.b.

    [autoit]


    Send("{TAB " & $Inputread & "}")
    Send ("{ENTER}")

    [/autoit][autoit][/autoit][autoit]

    While 1
    $Inputread = GUICtrlRead($Input)
    Wend

    [/autoit]

    blablabla... höchstens du machst den Spaß mit einem Bestätigungsbutton, dann wird das ganze ja erst nach dem gedrückten Button ausgeführt und du kannst dir die Whileschleife sparen.

    [autoit]

    $Input = GUICtrlCreateInput("", 10, 10, 100, 20)
    $Button = GUICtrlCreateButton("Button", 20, 20, 50, 25)
    GUICtrlSetOnEvent($Button, "_button")

    [/autoit][autoit][/autoit][autoit]

    Func _button()
    Send("{TAB " & GUICtrlRead($Input) & "}")
    Send ("{ENTER}")
    EndFunc

    [/autoit]


    Such dir was raus, hoffe ich konnte dir helfen.

  • Bist du dir sicher, dass die Zeilen

    [autoit]

    Send ("{TAB}")
    Send ($Inputread)
    Send ("{ENTER}")

    [/autoit]


    bewirken, dass das Programm so oft Tab "drückt", wie der Wert ist den ich eingegeben habe?
    Muss es bei Tab nciht normalerweise so aussehen?

    [autoit]

    Send ("{TAB 12}")

    [/autoit]

    bzw irgendeine Zahl...

    muss die Zahl nicht mit in der Klammer stehen?

    • Offizieller Beitrag

    Hi,

    ich glaube er wollte sowas : Ich habe es mal in ein notepad ausgeben lassen damit du siehst was passiert

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    GUICreate("TEST", 300, 100)
    $input = GUICtrlCreateInput("", 10, 10, 100, 20)
    $button = GUICtrlCreateButton("Auslesen", 50, 50, 50, 20)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $button
    Run('Notepad')
    WinWait('Unbenannt - Editor')
    Send('vorher')
    Send("{TAB " & GUICtrlRead($input) & "}")
    Send('nach ' & GUICtrlRead($input) & ' Tabs')
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

    [/autoit]

    Mega

  • [autoit]

    Send("{TAB " & GUICtrlRead($input) & "}")

    [/autoit]

    das ist der Befehl den ich gebraucht habe :)
    danke dir

  • ein weiterer vorschlag wäre:

    $eingabe = InputBox("Frage","Wie oft soll TAB gedrückt werden?","")

    While $eingabe > 0

    Send ("{TAB}")

    $eingabe = $eingabe - 1

    Wend


    Nur so als Anregung;)

    GreEtz

  • Zitat

    Keine Ursache! Wird sicherlich nicht lange dauern bis zum nächsten Problem ^^

    mega, bist ja voll der meister des sarkasmus ^^ LOL

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D