Hi, hier mal ein kleines Script von mir.
Es ist ein Timer, der läuft runter, und wenn er fertig ist, führt er eine Aktion aus.
#cs ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]AutoIt Version: 3.3.0.0
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]; Script Start - Add your code below here
[/autoit][autoit][/autoit][autoit][/autoit][autoit]#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinApi.au3>
#include <Timers.au3>
#include <Sound.au3>
#include <constants.au3>
Opt('MustDeclareVars', 1)
Opt('TrayAutoPause', 0)
Opt('TrayOnEventMode', 1)
Opt('TrayMenuMode', 1)
Opt('GUIEventOptions', 1)
Global $Abbrechen = False, $running = false, $pause = false
Global $Time, $timer, $ptime, $pausetime = 0
Global $End, $Resize
Global $Form1, $Group1, $Shutdown, $PlaySound, $RUN, $Group2, $Label1, $Hours, $Label2, $mins, $StartPause, $CancelQuit, $Progress1, $Group3, $Path, $Durchsuchen, $nMsg
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Timer", 410, 296, 192, 124)
$Group1 = GUICtrlCreateGroup("Aktion", 232, 16, 153, 105)
$Shutdown = GUICtrlCreateRadio("Herunterfahren", 248, 32, 121, 17)
$PlaySound = GUICtrlCreateRadio("Sound abspielen", 248, 56, 129, 25)
GUICtrlSetState(-1, $GUI_CHECKED)
$RUN = GUICtrlCreateRadio("Script/Anwendung/CMD-Command Ausführen", 248, 88, 105, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Zeit", 16, 16, 153, 105)
$Label1 = GUICtrlCreateLabel("Stunden:", 32, 40, 47, 17)
$Hours = GUICtrlCreateInput("", 88, 40, 49, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
$Label2 = GUICtrlCreateLabel("Minuten", 32, 80, 42, 17)
$mins = GUICtrlCreateInput("", 88, 80, 49, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$StartPause = GUICtrlCreateButton("Start", 96, 248, 89, 25, $WS_GROUP)
$CancelQuit = GUICtrlCreateButton("Beenden", 204, 248, 97, 25, $WS_GROUP)
$Progress1 = GUICtrlCreateProgress(24, 208, 353, 25)
$Group3 = GUICtrlCreateGroup("Pfad/Befehl", 16, 136, 369, 57)
$Path = GUICtrlCreateInput("", 24, 160, 273, 21)
$Durchsuchen = GUICtrlCreateButton("Durchsuchen", 304, 160, 73, 25, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
TraySetClick ( 8 )
$End = TrayCreateItem("Beenden")
$Resize = TrayCreateItem("Wiederherstellen")
TrayItemSetOnEvent($End, "End")
TrayItemSetOnEvent($Resize, "Anzeigen")
TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "Anzeigen")
TraySetOnEvent($TRAY_EVENT_MOUSEOVER, "CreateTooltip")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $GUI_EVENT_MINIMIZE
GUISetState(@SW_HIDE, $Form1)
Case $StartPause
runTimer()
Case $CancelQuit
Exit
Case $Durchsuchen
Durchsuchen()
EndSwitch
WEnd
Func runTimer()
[/autoit][autoit][/autoit][autoit]GUICtrlSetData($StartPause, "Pause")
GUICtrlSetData($CancelQuit, "Abbrechen")
$Time = GUICtrlRead($Hours)*3600 + GUICtrlRead($mins)*60
$timer = _Timer_Init()
$running = true
$pausetime = 0
while(((_Timer_Diff($timer)/1000)-$pausetime) < $time)
GUICtrlSetData($Progress1, (((_Timer_Diff($timer)/1000)-$pausetime)/$time)*100 )
$nMsg = GUIGetMsg()
[/autoit][autoit][/autoit][autoit]Switch $nMsg
Case $StartPause
Pause()
if($Abbrechen == true) then
$Abbrechen = false
Return
EndIf
Case $CancelQuit
GUICtrlSetData($StartPause, "Start")
GUICtrlSetData($CancelQuit, "Beenden")
GUICtrlSetData($Progress1, 0)
$running = false
Return
Case $GUI_EVENT_CLOSE
Exit
case $GUI_EVENT_MINIMIZE
GUISetState(@SW_HIDE, $Form1)
EndSwitch
WEnd
TimeOver()
EndFunc
[/autoit][autoit][/autoit][autoit]Func Pause()
GUICtrlSetData($StartPause, "Fortsetzen")
$pause = true
$ptime = _Timer_Init()
while true
$nMsg = GUIGetMsg()
Switch $nMsg
Case $StartPause
GUICtrlSetData($StartPause, "Pause")
$pausetime += _Timer_Diff($ptime)/1000
$pause = false
Return
Case $CancelQuit
$Abbrechen = true
GUICtrlSetData($StartPause, "Start")
GUICtrlSetData($CancelQuit, "Beenden")
GUICtrlSetData($Progress1, 0)
$running = false
Return
Case $GUI_EVENT_CLOSE
Exit
case $GUI_EVENT_MINIMIZE
GUISetState(@SW_HIDE, $Form1)
EndSwitch
WEnd
EndFunc
[/autoit][autoit][/autoit][autoit]Func Durchsuchen()
local $Ret = _WinAPI_GetOpenFileName("Wähle eine Datei", "Alle Dateien (*.*)", @HomeDrive)
if($Ret[0] <> 0) Then
GUICtrlSetData($Path, $Ret[1]&"\"&$Ret[2])
EndIf
EndFunc
[/autoit][autoit][/autoit][autoit]Func TimeOver()
[/autoit][autoit][/autoit][autoit]if(GUICtrlRead($Shutdown) == $GUI_CHECKED) Then
Shutdown(5)
ElseIf(GUICtrlRead($PlaySound) == $GUI_CHECKED)Then
_SoundPlay(_SoundOpen(GUICtrlRead($Path)))
if(@error == 1) Then
MsgBox(0, "Timer", "Konnte Sound nicht abspielen."&@CRLF&"Möglicherweise nicht vorhanden, oder ungültiges Format?")
EndIf
ElseIf(GUICtrlRead($RUN) == $GUI_CHECKED)Then
Run(GUICtrlRead($Path))
EndIf
GUICtrlSetData($StartPause, "Starten")
GUICtrlSetData($CancelQuit, "Beenden")
GUICtrlSetData($Progress1, 0)
$running = false
EndFunc
[/autoit][autoit][/autoit][autoit]Func Anzeigen()
GUISetState(@SW_SHOW, $Form1)
EndFunc
Func End()
Exit
EndFunc
Func CreateTooltip()
local $nachricht
local $StayedTime
local $title
if($running == true And $pause == false) then
$title = "Verbleibende Zeit:"
$StayedTime = $Time - _Timer_Diff($timer)/1000 + $pausetime
elseif($pause == true and $running == true) Then
$title = "Pausiert - Verbleibende Zeit:"
$StayedTime = $Time - _Timer_Diff($timer)/1000 + _Timer_Diff($ptime)/1000 + $pausetime
elseif($running == false) then
$title = "Timer läuft nicht"
$StayedTime = 0
EndIf
local $Stunden = Int($StayedTime / 3600)
local $Minuten = Int(($StayedTime - $Stunden*3600)/60)
local $Secunden = Int($StayedTime - $Stunden*3600 - $Minuten*60)
$nachricht = $Stunden&":"&$Minuten&":"&$Secunden
[/autoit][autoit][/autoit][autoit]TrayTip($title, $nachricht, 1, 1)
TrayTip("", "", 1)
EndFunc