Einstellbare Zeit

  • Wollte mal wissen ob man eventuell eine Box erstellen kann, die angibt wie
    lange eine wartezeit "sleep" an einer bestimmten stelle ist. Am besten in
    Sekunden angeben. Das bei jedem Start des Scripts ein Fenster kommt wo
    man die Zeit eingeben kann

  • Schau' dir doch mal bitte ein paar Einsteiger Tutorials und die AutoIt-Hilfe an.
    Damit und mit meiner Antwort auf deine letzte Frage solltest du das selbst schaffen können.

    [autoit]

    $Name = InputBox("", "Name:")
    ; und
    Send($Name)

    [/autoit]
  • ich hab es ja schon geschafft (mittlerweile) das es in sekunden und minuten angegeben wird auch
    aber ich find jetzt nirgends etwas wie ich in einer inputbox eine minuten angabe + die sekunden angabe
    machen kann.

  • Zitat

    ich hab es ja schon geschafft (mittlerweile) das es in sekunden und minuten angegeben wird auch

    aber ich find jetzt nirgends etwas wie ich in einer inputbox eine minuten angabe + die sekunden angabe

    machen kann.

    Ich hoffe dir ist bewusst das "Minuten" und "Sekunden" angaben nicht als ((01 : 30)(Minuten : Sekunden)) angegeben werden.
    Sondern dass eine Sekunde = 1000
    bsp.

    [autoit]

    sleep(1000) ;Warte 1Sek

    [/autoit]


    Dementsprechendist eine Minute (60000)

    Greez

  • Wenn ich die Frage richtig verstanden habe (ist für mich nicht wirklich eindeutig), dann muss ich meinen Vorrednern 100%ig recht geben.
    Ein Blick in Tutorials ist schon hilfreich.

    hab hier in ein paar Minütchen 2 Beispiele gebastelt, als Anschauung.

    Beispiel 1: Inputboxen
    [autoit]

    #region: Inputbox um eine Wartzezeit einzutragen (inkl. "Erklärungs-Fehlerhandling")
    Dim $checkwert = False, $sleeptime

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

    Func sleepdemo()
    $sleeptime = InputBox("Sleeptime eintragen",@CR&"Eingabe erfolgt in Sekunden, weil in der Sleep-Zeile"&@CR&"der Wert dieser Inputbox mit 1000 multipliziert wird."& _
    @CR&@CR&"Beispiel:"&@CR&"Wert = 69"&@TAB&"mal 1000 = Sleep(69 * 1000) ==> Sleep(69000)", "", "", 350, 200)
    Switch @error
    Case 0 ;==> Okay-Button wurde gedrückt
    If Not StringRegExp($sleeptime, "\A\d+\z") Then ;==> String wird auf Korrektheit geprüft (nur Zahlen ohne Leerzeichen / Punkt / Komma usw...)
    MsgBox(0,"????", "Du weisst schon, dass du eine Zahl eingeben musst???")
    Else
    $checkwert = True
    EndIf
    Case 1 ;==> Abbrechen- oder Exit-Button wurde gedrückt
    MsgBox(0,"Was denn nun?","Warum hast du die Demonstration abgebrochen???." & @CR & "Weisst wohl nicht was du willst?!")
    Exit
    Case Else
    MsgBox(0,"Fehler", "Ein unerwarteter Fehler ist aufgetreten." & @CR & "Die Demo wird abgebrochen!")
    Exit
    EndSwitch
    EndFunc

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

    Do
    sleepdemo()
    Until $checkwert = True

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

    Sleep($sleeptime * 1000)
    MsgBox(0,"Siehste?","War doch gar nicht so schwer."&@CRLF&"Die Wartezeit ist abgelaufen."&@CRLF&@CRLF&"Die Demo wurde erfolgreich beendet."&@CRLF&"Herzlichen Glückwunsch!!")
    #endregion ;==> sobald dieses Prinzip verstanden wurde, was echt keine Schwierigkeit darstellen sollte, wird der nächste Code ausreichend sein:

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

    #region: Kurzform des oberen Prinzips
    $sleep = InputBox("Sleeptime","in Sekunden eintragen")
    Sleep($sleep*1000)
    #endregion

    [/autoit]
    Beispiel 2: GUI
    [autoit]

    #region: Beispiel mit einer GUI (Demo via ToolTip)
    #include "EditConstants.au3" ;==> wegen $ES_NUMBER (nur zahlen schreiben ist möglich)
    $gui = GUICreate("Sleeptime",200,100)
    GUICtrlCreateLabel("Stunden", 25,10)
    GUICtrlCreateLabel("Minuten", 80,10)
    GUICtrlCreateLabel("Sekunden",130,10)
    $input_stunde = GUICtrlCreateInput("", 30,30,30,-1,$ES_NUMBER)
    $input_minute = GUICtrlCreateInput("", 85,30,30,-1,$ES_NUMBER)
    $input_second = GUICtrlCreateInput("",140,30,30,-1,$ES_NUMBER)
    $button_ok = GUICtrlCreateButton("übernehmen", 10,70,80)
    $button_esc = GUICtrlCreateButton("abbruch", 110,70,80)
    GUISetState()
    while 1
    Switch GUIGetMsg()
    Case $button_esc
    ExitLoop
    Case $button_ok
    $wert_sleeptime = GUICtrlRead($input_stunde) * 3600000 + GUICtrlRead($input_minute) * 60000 + GUICtrlRead($input_second) * 1000
    GUIDelete($gui)
    If $wert_sleeptime <> 0 Then
    sleepdemo2($wert_sleeptime)
    ExitLoop
    Else
    $wert_sleeptime = 10000
    MsgBox(0,"Achtung","Keine Werte eingetragen. $wert_sleeptime wurde zur Demo auf 10 Sekunden gesetzt.")
    sleepdemo2($wert_sleeptime)
    ExitLoop
    EndIf
    EndSwitch
    WEnd

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

    Func sleepdemo2($wert_sleeptime)
    For $i = $wert_sleeptime/1000 To 1 Step -1
    ToolTip(@CR & "Der Befehl" & @TAB & "Sleep($wert_sleeptime)" & @CR & "endet in" & @TAB & @TAB & $i & " Sekunden." ,"","","Countdown" & @TAB & "$wert_sleeptime = " & $wert_sleeptime & " ms ",1,1)
    sleep(1000)
    Next
    For $i = 1 To 0 Step -1
    ToolTip(@CR & "Der Befehl" & @TAB & "Sleep($wert_sleeptime)" & @CR & "endet jetzt." ,"","","Countdown" & @TAB & "$wert_sleeptime = " & $wert_sleeptime & " ms ",1,1)
    Sleep(1000)
    Next
    EndFunc
    #endregion

    [/autoit]

    MfG Lottich

  • das mit in sekunden angeben hab ich jetzt so gemacht

    ($time * 1000)
    und minuten
    ($time2 * 1000 * 60)

    Jedoch will ich diese beiden in einer inputbox angeben können

  • Hey,
    Ich hab dir mal schnell eine Funktion gebastelt:

    Spoiler anzeigen
    [autoit]

    func _SleepTimer()
    $hGUI = GUICreate("Sleep Timer", 180, 100)

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

    GUICtrlCreateLabel("Wie lange soll gewartet werden?", 10, 10)
    GUICtrlCreateLabel("h", 45, 37)
    GUICtrlCreateLabel("min", 100, 37)
    GUICtrlCreateLabel("sec", 155, 37)

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

    $iHour = GUICtrlCreateInput("0", 10, 35, 30, 20)
    $iMin = GUICtrlCreateInput("0", 65, 35, 30, 20)
    $iSec = GUICtrlCreateInput("0", 120, 35, 30, 20)

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

    $BtnOK = GUICtrlCreateButton("OK", 70, 65, 40, 25)

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

    GUISetState()

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

    while 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    GUIDelete($hGUI)
    ExitLoop

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

    case $BtnOK
    $iHour = GUICtrlRead($iHour)
    $iMin = GUICtrlRead($iMin)
    $iSec = GUICtrlRead($iSec)

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

    $iMin = $iMin + $iHour * 60
    $iSec = $iSec + $iMin * 60
    $iMillisec = $iSec * 1000
    GUIDelete($hGUI)
    ExitLoop

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

    EndSwitch
    WEnd
    Return $iMillisec
    EndFunc ;==> _SleepTimer()

    [/autoit]

    Mfg