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
Einstellbare Zeit
-
- [ offen ]
-
Saints257 -
30. August 2012 um 15:36 -
Geschlossen -
Erledigt
-
-
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:")
[/autoit]
; und
Send($Name) -
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 bin ganz sicher, da wirst Du fündig oder kommst zumindest auf eine Lösung.
-
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.
[autoit]
Sondern dass eine Sekunde = 1000
bsp.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")
[/autoit] [autoit][/autoit] [autoit]
Dim $checkwert = False, $sleeptimeFunc sleepdemo()
[/autoit] [autoit][/autoit] [autoit]
$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
EndFuncDo
[/autoit] [autoit][/autoit] [autoit]
sleepdemo()
Until $checkwert = TrueSleep($sleeptime * 1000)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
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:#region: Kurzform des oberen Prinzips
[/autoit]
$sleep = InputBox("Sleeptime","in Sekunden eintragen")
Sleep($sleep*1000)
#endregionBeispiel 2: GUI
[autoit]#region: Beispiel mit einer GUI (Demo via ToolTip)
[/autoit] [autoit][/autoit] [autoit]
#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
WEndFunc sleepdemo2($wert_sleeptime)
[/autoit]
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
#endregionMfG 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
-
dann guck mal nach StringSplit()...
-
Hey,
Ich hab dir mal schnell eine Funktion gebastelt:Spoiler anzeigen
[autoit]func _SleepTimer()
[/autoit] [autoit][/autoit] [autoit]
$hGUI = GUICreate("Sleep Timer", 180, 100)GUICtrlCreateLabel("Wie lange soll gewartet werden?", 10, 10)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel("h", 45, 37)
GUICtrlCreateLabel("min", 100, 37)
GUICtrlCreateLabel("sec", 155, 37)$iHour = GUICtrlCreateInput("0", 10, 35, 30, 20)
[/autoit] [autoit][/autoit] [autoit]
$iMin = GUICtrlCreateInput("0", 65, 35, 30, 20)
$iSec = GUICtrlCreateInput("0", 120, 35, 30, 20)$BtnOK = GUICtrlCreateButton("OK", 70, 65, 40, 25)
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]while 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
GUIDelete($hGUI)
ExitLoopcase $BtnOK
[/autoit] [autoit][/autoit] [autoit]
$iHour = GUICtrlRead($iHour)
$iMin = GUICtrlRead($iMin)
$iSec = GUICtrlRead($iSec)$iMin = $iMin + $iHour * 60
[/autoit] [autoit][/autoit] [autoit]
$iSec = $iSec + $iMin * 60
$iMillisec = $iSec * 1000
GUIDelete($hGUI)
ExitLoopEndSwitch
[/autoit]
WEnd
Return $iMillisec
EndFunc ;==> _SleepTimer()Mfg
-
- Offizieller Beitrag
Damit sollte erst mal genug getan sein. Ich befürchte hier geht es um etwas völlig anderes. Falls nicht ist ja eine Lösung vorhanden.
[CLOSED]