ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1211
1211
EMPFEHLEN
-
15.07.10 18:11 #1
Hallo Forumgemeinde,
ich arbeite gerade an einem Skript, welches mit einem Fortschrittsbalken die vergangene Zeit anzeigt und eigentlich nach einer Stunde
Daten löschen soll und anschließend weiterarbeiten soll, wenn mehr als eine Datei in einem bestimmten Ordner sind löschen soll.
Sobald eine Datei nur noch in diesem Verzeichnis ist, soll wieder der Fortschrittsbalken und der Timer 1 h laufen usw.
EDIT: Der Vorgang soll mithilfe des Button Start... begonnen werden und mithilfe des Buttons Change(den ich auf Beenden umtaufe) beendet werden!
Leider kann ich den Timer nicht einstellen, da ich diesen Punkt nicht finde. Hier mal der Code von dem Fenster und dem Timer:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
Global $iMemo, $hStatusBar, $progress, $percent = 0, $direction = 1 _Example_CallBack() Func _Example_CallBack() Local $hGUI, $iTimerProgress, $btn_change, $iWait = 10, $btn_state Local $aParts[3] = [75, 330, -1] $hGUI = GUICreate("Anno 1404 Spielstand Reseter - World-from-you", 400, 320) $iMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, BitOR($WS_HSCROLL, $WS_VSCROLL)) GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New") $hGUI = GUICreate("Timers Using CallBack Function(s)", 400, 320) $iMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, BitOR($WS_HSCROLL, $WS_VSCROLL)) GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New") $btn_state = GUICtrlCreateButton("Start Anno 1404 Spielstand Reseter", 125, 270, 125, 25) $btn_change = GUICtrlCreateButton("Change", 215, 270, 90, 25) GUICtrlSetState($btn_change, $GUI_DISABLE) $hStatusBar = _GUICtrlStatusBar_Create($hGUI, $aParts) _GUICtrlStatusBar_SetText($hStatusBar, "Timers") _GUICtrlStatusBar_SetText($hStatusBar, @TAB & @TAB & StringFormat("%02d:%02d:%02d", @HOUR, @MIN, @SEC), 2) $progress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) GUICtrlSetColor($progress, 0xff0000) _GUICtrlStatusBar_EmbedControl($hStatusBar, 1, GUICtrlGetHandle($progress)) GUISetState() _Timer_SetTimer($hGUI, 1000, "_UpdateStatusBarClock") ; create timer While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $btn_state If GUICtrlRead($btn_state) = "Start Anno 1404 Spielstand Reseter" Then $iTimerProgress = _Timer_SetTimer($hGUI, $iWait, "_UpdateProgressBar") ; create timer If @error Or $iTimerProgress = 0 Then ContinueLoop GUICtrlSetData($btn_state, "Stop") GUICtrlSetState($btn_change, $GUI_ENABLE) Else GUICtrlSetState($btn_change, $GUI_DISABLE) _Timer_KillTimer($hGUI, $iTimerProgress) GUICtrlSetData($btn_state, "Start Anno 1404 Spielstand Reseter") EndIf Case $btn_change If $iWait = 10 Then $iWait = 250 Else $iWait = 10 EndIf MemoWrite("Timer for _UpdateProgressBar set at: " & $iWait & " milliseconds") $iTimerProgress = _Timer_SetTimer($hGUI, $iWait, "", $iTimerProgress) ; reuse timer with different interval EndSwitch WEnd ConsoleWrite("Killed All Timers? " & _Timer_KillAllTimers($hGUI) & @CRLF) GUIDelete() EndFunc ;==>_Example_CallBack ; call back function Func _UpdateStatusBarClock($hWnd, $Msg, $iIDTimer, $dwTime) #forceref $hWnd, $Msg, $iIDTimer, $dwTime _GUICtrlStatusBar_SetText($hStatusBar, @TAB & @TAB & StringFormat("%02d:%02d:%02d", @HOUR, @MIN, @SEC), 2) EndFunc ;==>_UpdateStatusBarClock ; call back function Func _UpdateProgressBar($hWnd, $Msg, $iIDTimer, $dwTime) #forceref $hWnd, $Msg, $iIDTimer, $dwTime $percent += 5 * $direction GUICtrlSetData($progress, $percent) If $percent = 100 Or $percent = 0 Then $direction *= -1 If $percent = 100 Then GUICtrlSetColor($progress, 0xff0000) ElseIf $percent = 0 Then GUICtrlSetColor($progress, 0x0000ff) EndIf EndFunc ;==>_UpdateProgressBar
Danke für eure Hilfe im Vorraus.
Grüße
YannikToldGeändert von YannikTold (15.07.10 um 18:14 Uhr)
Bitte bewerte mich, falls ich weitergeholfen habe.
Mit freundlichen Grüßen
Yannik Told
-
Hallo YannikTold!
Was meinst du mit du findest diesen Punkt nicht?
-
15.07.10 18:48 #3Bitte bewerte mich, falls ich weitergeholfen habe.
Mit freundlichen Grüßen
Yannik Told
-
Habe schon lange nichts mehr mti AutoIt gemacht, aber du könntest die Funktion Sleep() benutzen. Immer Sleep(1000); dann die Progressbar um 1 erhöhen und wieder sleepen. Nach einer Stunde, also wenn die Schleife 3600 gelaufen ist (wenn Sleep 1000 = 1 Sekunde ist) dann überprüfst du den Ordner und löschst alles etc was du halt willst. Hast du so etwas gemeint?
-
Dieser Timer sollte dir weiter helfen.
global $timer, $stop
$stop = 0
$timer = 3600000
;~ 3600 sekunden sind 1 Stunde
;~ 1 Autoit-Sekunde = 1000
while 1
if $stop >= $timer then
MsgBox(0,"ALARM!","ALARM! 1 Std. ist rum!")
exitloop
EndIf
$stop = $stop + 1000
sleep(1000)
wend
Ähnliche Themen
-
Daten einer bestimmten Stunde zählen
Von sandroP im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 08.04.09, 22:09 -
Daten nach X Zeit löschen...
Von deintag85 im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 20.06.08, 18:49 -
Seite soll nach Aufruf von Skript mit alert( ) auf aktueller Seite bleiben...
Von Sylan im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 19.06.07, 15:21 -
Thread soll JEDE STUNDE einmalig eine Aktion ausführen
Von Lautsprecher im Forum JavaAntworten: 5Letzter Beitrag: 02.11.05, 12:15 -
daten aus textdatei nach verfallsdatum löschen
Von della im Forum PHPAntworten: 2Letzter Beitrag: 01.02.05, 17:20





Zitieren
Login




