- Offizieller Beitrag
Dieses Script ist ein kleiner Timer. Gut geeignet zum Tee kochen oder Pizza backen.
Es gibt noch einen kleinen Fehler: Wenn man den Timer stoppt, erscheint der TrayTip "Timer gestoppt!" nicht und ich weiß nicht, warum...
Aber ansonsten funktioniert's.
Edit: Wenn der Timer abgelaufen war, waren die TrayMenüItems noch deaktiviert.
Spoiler anzeigen
#include <Constants.au3>
Opt('TrayAutoPause', 0)
Opt('TrayMenuMode', 1)
Opt('TrayOnEventMode', 1)
Global $aTime[7] = [1, 2, 3, 5, 10, 20, 30]
Global $ahItem[7], $iTimerInit = 10, $iCounter = 0
Global $sAlarmSound = @WindowsDir & '\Media\ringin.wav'
Global $sTitle = 'Pizzatimer v1.1'
$hInit = TrayCreateMenu('Zeitvorgabe...')
For $i = 0 To 6
$ahItem[$i] = TrayCreateItem($aTime[$i] & ' Minute' & StringMid(' n', 1 + ($aTime[$i] > 1), 1), $hInit, -1, 1)
TrayItemSetOnEvent(-1, '_Timer')
Next
TrayItemSetState($ahItem[4], $TRAY_CHECKED)
$hStart = TrayCreateItem('Timer starten')
TrayItemSetOnEvent(-1, '_Start')
$hStop = TrayCreateItem('Timer stoppen')
TrayItemSetOnEvent(-1, '_Stop')
TrayItemSetState(-1, $TRAY_DISABLE)
TrayCreateItem('')
[/autoit] [autoit][/autoit] [autoit]TrayCreateItem('Programm beenden')
TrayItemSetOnEvent(-1, '_End')
TraySetIcon('Shell32.dll', -44)
TraySetToolTip($sTitle)
TraySetClick(16)
TraySetState()
While True
Sleep(50)
WEnd
Func _End()
Exit
EndFunc ;==>_End
Func _Start()
TrayItemSetState($hStart, $TRAY_DISABLE)
TrayItemSetState($hStop, $TRAY_ENABLE)
TrayItemSetState($hInit, $TRAY_DISABLE)
$iCounter = $iTimerInit * 60 + 1
_Countdown()
AdlibEnable('_Countdown', 1000)
EndFunc ;==>_Start
Func _Stop()
AdlibDisable()
TrayTip($sTitle, 'Timer gestoppt!', 5, 17)
TrayItemSetState($hStop, $TRAY_DISABLE)
TrayItemSetState($hStart, $TRAY_ENABLE)
TrayItemSetState($hInit, $TRAY_ENABLE)
EndFunc ;==>_Stop
Func _Timer()
$iTimerInit = $aTime[@TRAY_ID - $ahItem[0]]
EndFunc ;==>_Timer
Func _Countdown()
$iCounter -= 1
TrayTip($sTitle, 'Restzeit: ' & _MinSec($iCounter), 5, 17)
If $iCounter = 0 Then
AdlibDisable()
TrayTip($sTitle, 'Zeit um!', 5, 17)
SoundPlay($sAlarmSound)
TrayItemSetState($hStop, $TRAY_DISABLE)
TrayItemSetState($hStart, $TRAY_ENABLE)
TrayItemSetState($hInit, $TRAY_ENABLE)
EndIf
EndFunc ;==>_Countdown
Func _MinSec($iCounter)
Local $sOut = ''
If $iCounter > 59 Then
$sOut = Int($iCounter / 60) & ' min. und '
$sOut &= Mod($iCounter, 60) & ' sek.'
Else
$sOut = $iCounter & ' sek.'
EndIf
Return $sOut
EndFunc ;==>_MinSec