Inbutbox > Eingabe in Variable speichern und weiterverwenden

  • Hallo ihr Lieben,

    ich habe mal wieder eine kleine Anfänger-Frage.
    Ich möchte gerne, dass beim Start des Skriptes der User ein Fenster mit Eingabemöglichkeit angezeigt bekommt, er seinen Wert eintippt, der Wert in eine Variable gespeichert wird und dann in einer Berechnung verwendet werden kann....aber so einfach wie ichs mir denke ist es mal wieder nicht. Auch gut möglich, dass ich den Befehl "Inputbox" nicht richtig verstanden habe oder dergleichen.
    Vielleicht könnt ihr ja helfen :)

    [autoit]

    #AutoIt3Wrapper_usex64=n
    #include <Misc.au3>

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

    HotKeySet("{ESC}", "ende")
    Global $zahl
    Global $anzahl

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

    While 1
    Sleep(1000)
    starten()
    WEnd

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

    Func starten()
    Sleep(200)
    If _IsPressed(12) Then ;;wenn Pfeil-Taste gedrückt starte go()
    Sleep(300)
    go()
    EndIf

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

    If _isPressed(26) Then ;wenn Pfeil-Taste gedrückt starte straight()
    Sleep(300)
    straight()
    EndIf
    EndFunc

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

    Func go()
    $zahl = InputBox("Dein Wert", "Was willst du eingeben?", "", "") ;<==== hier wills nicht

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

    If not @error Then
    $anzahl = Number($zahl) ;string soll in Int umgewandelt werden
    EndIf
    DO
    ...
    Until ...
    EndFunc

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

    Func straight()
    $zahl = InputBox("Dein Wert", "Was willst du eingeben?", "", "")
    If not @error Then
    $anzahl = Number($zahl)
    EndIf
    DO
    ....
    Until
    EndFunc

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

    Func ende()
    Exit
    EndFunc ;==>ende

    [/autoit]

    Ich wollte eigentlich ungern eine eigene GUI schreiben für so eine Mini-Eingabe. Ich habe gelesen dass der InputBox-Befehl häufig in Verbindung mit ini-Dateien genutzt wird. Gehts vielleicht nicht ohne?
    Komm ich da drum herum?
    Die Funktionen lassen sich allesamt ohne die Input-Boxen ausführen ohne Probleme.
    Wäre nett wenn jemand einen Hinweis hätte.

    LG

    Einmal editiert, zuletzt von PengShui (26. Januar 2014 um 12:07)

  • Ich habe gelesen dass der InputBox-Befehl häufig in Verbindung mit ini-Dateien genutzt wird. Gehts vielleicht nicht ohne?
    Komm ich da drum herum?

    Die beiden Funktionen haben nichts miteinander zu tun, InputBox funktioniert also auch ohne INI-Dateien.

    In dem Codeausschnitt sehe ich aber auch auf die Schnelle keinen Fehler.

  • Sehe ebenfalls keinen Fehler. Du hast im übrigen auch nicht wirklich geschrieben was nicht funktioniert. Erscheint die inputbox nicht? Wenn sie erscheint wie kommst du darauf, dass der Wert nicht wie gewünscht in der Variable landet?´Schonmal ein wenig Debugging betrieben? Lass dir einfach mit einer msgbox oder consolewrite anzeigen ob und wann gewisse code passagen aufgerufen wurden und lass dir die Werte der für dich relevanten Variablen ausgeben. Vermutlich steckt dein Problem in den unterschlagenen Codezeilen und ich kann mir auch denken warum du uns diese nicht zeigen magst...

  • Nun ists abe gut! Ihr habts geschafft. Ich werde hier keine Fragen mehr stellen und mir ein anderes Forum suchen.
    Jedes mal wenn man eine mickrige Frage stellt bekommt man irgendetwas unterstellt. Ich habe einfach ein paar Zeilen weggelassen um alles bissl zu kürzen.
    Das Skript sollte nichts anderes tun, als X Tabs mit Fotos die ich mir den Tag über rausgesucht habe (und deren Anzahl ich gerne eintippen möchte) per Rechtsklick > Speichern unter am Abend in einen Ordner zu packen....gleiches mit geöffneten PDF-Dokumenten.
    Ich weiß mir aktuell (als Anfänger) nicht anders zu helfen als über die Tab-Anzahl zu gehen. Das war das erste, was mir einfiel. Und es soll ja auch kein profi-Ding werden sondern nur meine privaten banalen Mini-Ansprüche erfüllen und mir (egal wie) die Klickerei abnehmen.

    Ich habe keine Lust mehr.
    Problem ist mitlerweile auch gelöst.
    Ich hab vergessen eine Variable als Global zu definieren....warum das jetzt das Problem gelöst hat ist mir nicht ganz klar. Aber egal. Ich frage woanders.

  • Also lag der Fehler doch im unterschlagenen Code, denn in deinem Codeschnipsel verwendest du exakt 2 Variablen, welche beide global deklariert sind und somit deiner Aussage nach nicht für das Problem verantwortlich waren. Gerne hätte ich dir auch erklärt warum das globale Deklarieren der fraglichen Variable letzlich dein Problem gelöst hat und ob es vielleicht bessere Lösungen als globale Variablen gegeben hätte, aber ohne vollständigen code geht das eben nicht. Ob du anderswo besseren Support findest wenn du die relvanten Stellen nicht postest wage ich mal zu bezweifeln. Trotzdem viel Glück...