Habe mir mal einen Timer zusammen gebaut, den ich sehr praktisch finde.
Code habe ich teilweise aus einen anderen Script entnommen und ein bisschen umgebaut.
Code: Select all
#NoEnv
DetectHiddenWindows,On
CoordMode,Mouse,Screen
SetBatchLines, -1
ListLines Off
SendMode Input
OnMessage(0x200, "WM_MOUSEMOVE")
Beep_TT := "Mache hier einen Haken rein wenn nur ein Piep Ton abgespielt werden soll"
Sound_TT := "Mache hier einen Haken rein wenn eine Audio Datei abgespielt werden soll"
SoundFile_TT := "Hier kannst Du eine Audio Datei auswählen"
Volume1_TT := "Hier kannst Du die Lautstärke einstellen in der der Piep Ton oder das Soundfile abgespielt werden soll"
Timer_TT := "Hier kannst Du die Zeit für den Timer einstellen (Minuten)"
;#NoTrayIcon
ReadSoundFile =
SoundFile =
volume1 =
#Include D:\Tools\AutoHotkey 1.1\Compiler\ToolTipOpt.ahk
IniRead,ReadTimer,Daten\ini\Timer.ini,Timer,Key1
IniRead,ReadBeep,Daten\ini\Timer.ini,Timer,Key2
IniRead,ReadSound,Daten\ini\Timer.ini,Timer,Key3
IniRead,ReadSoundFile,Daten\ini\Timer.ini,Timer,Key4
IniRead,ReadVolume1,Daten\ini\Timer.ini,Timer,Key5
SoundGet, AktuelleLautstaerke
Sleep, 200
CoordMode, Pixel, Screen
Gui, New, ,Sonja´s Countdown Timer
Gui, +AlwaysOnTop
list = 360
Loop,% List
ddlv .= A_Index "|"
Gui, Add, Text, cRed x5 y5, Sound Einstellungen
Gui, Add, Text, cRed x180 y5, Lautstärke einstellen
Gui, Add, Checkbox, x5 y25 vBeep Checked%ReadBeep%, Nur einen Beep Ton abspielen
Gui, Add, Checkbox, x5 y45 vSound Checked%ReadSound%, Eigenes Soundfile abspielen
Gui, Add, Button, x180 y42 h20 w120 vSoundFile gSoundFile, Soundfile auswählen
Gui, Add, Slider, x175 y25 w130 h15 Thick10 Range0-100 ToolTip vVolume1 AltSubmit , %Readvolume1%
Gui, Add, text, x0 y65 w350 h1 0x7
Gui, Add, DropDownList, x5 y75 h168 w150 vTimer, %ReadTimer%||%ddlv%
SplitPath, ReadSoundFile, Name
Gui, Add, text, x5 y285 vSoundName, %Name%
Gui, Add, text, cRed x180 y80, Timer kann mit F8 beendet werden
Gui, Add, text, x0 y105 w350 h1 0x7
Gui, Add, text, x5 y115, Willkommen bei Sonja´s Countdown Timer
Gui, Font, c747474
Gui, Add, text, x5 y135, Stelle einfach ein was Du gerne haben möchtest, entweder einen
Gui, Add, text, x5 y150, Piep Ton / oder 1 Soundfile das abgespielt werden soll wenn der Timer
Gui, Add, text, x5 y165, abgelaufen ist.
Gui, Add, text, x5 y185, Zum starten des Timers einfach das Fenster mit dem X schließen.
Gui, Add, text, x5 y205, Am oberen Bildschirmrand läuft dann 1 Balken runter, Du kannst
Gui, Add, text, x5 y220, mit der Maus über den Balken gehen damit Du sehen kannst, wie
Gui, Add, text, x5 y235, lange es noch dauert bis der Timer abgelaufen ist.
Gui, Add, text, x5 y255, Nach ablauf des Timers meldet er sich Optisch und Akustisch.
Gui, Add, text, x0 y283 w350 h1 0x7
Gui, Show, w350 h300 Center
return
GuiClose:
Gui, Submit, nohide
IniWrite,%Timer%,Daten\ini\Timer.ini,Timer,Key1
IniWrite,%Beep%,Daten\ini\Timer.ini,Timer,Key2
IniWrite,%Sound%,Daten\ini\Timer.ini,Timer,Key3
IniWrite,%Volume1%,Daten\ini\Timer.ini,Timer,Key5
AlarmTime =
AlarmTime += Timer, minutes
alarm=%AlarmTime% ;Alarm time
height=10 ;Progress bar height >0
message=Der Timer ist abgelaufen! ;Message to display when timer reached
range:=AlarmTime
EnvSub,range,%A_now%,seconds
Gui,+ToolWindow +AlwaysOnTop -Caption
Gui,Add,Progress,% "Vprogress X-2 Y-2 W" A_ScreenWidth+4 " H" height+5 " Range0-" range
Gui,Show,% "X0 Y0 W" A_ScreenWidth " H" height
Gui,+LastFound
guiid:=WinExist("A")
WinSet,Transparent,150,ahk_id %guiid% ; Transparency
WinSet,ExStyle,+0x20,ahk_id %guiid% ; Click-through
Loop,%range%
{
Sleep,1000
left:=range-A_Index
GuiControl,,progress,% left
Gosub,LEFT
}
If message<>
{
IniRead,ReadSoundFile,Daten\ini\Timer.ini,Timer,Key4
SoundSet, Volume1
Sleep, 200
If ReadBeep = 1
{
Loop, 5
{
SoundBeep
Sleep, 100
}
Sleep, 500
}
If ReadSound = 1
{
SoundSet, Volume1
IniRead,ReadSoundFile,Daten\ini\Timer.ini,Timer,Key4
SoundPlay, %ReadSoundFile%
}
}
MsgBox,%message%
SoundSet, %AktuelleLautstaerke%
ExitApp
LEFT:
MouseGetPos,,my
If (my<=height)
{
showing=1
ToolTip,% left " seconds left"
}
Else
If showing=1
ToolTip
Return
Gui, Cancel
IniRead,ReadSoundFile,Daten\ini\Timer.ini,Timer,Key4
SoundSet, Volume1
Sleep, 200
If ReadBeep = 1
{
Loop, 5
{
SoundBeep
Sleep, 100
}
Sleep, 500
}
If ReadSound = 1
{
;MsgBox, %ReadSoundFile%
SoundSet, Volume1
SoundPlay, %ReadSoundFile%
}
ExitApp
return
SoundFile:
FileSelectFile, SoundFile
IniWrite,%SoundFile%,Daten\ini\Timer.ini,Timer,Key4
IniRead,ReadSoundFile,Daten\ini\Timer.ini,Timer,Key4
SplitPath, ReadSoundFile, Name
GuiControl, Text, SoundName, %Name%
return
F8:: ExitApp
WM_MOUSEMOVE()
{
static CurrControl, PrevControl, _TT ; _TT bleibt für den unteren ToolTip-Befehl leer.
CurrControl := A_GuiControl
if (CurrControl != PrevControl and not InStr(CurrControl, " "))
{
ToolTip ; Schließt alle offenen Tooltips.
SetTimer, ZeigeToolTip, 100 ; <<<<< ToolTip nach 1000 Millisekunden anzeigen, wenn die Maus über dem Control bleibt.
PrevControl := CurrControl
}
return
ZeigeToolTip:
SetTimer, ZeigeToolTip, Off
ToolTip % %CurrControl%_TT ; Das erste Prozentzeichen erzwingt einen Ausdruck.
SetTimer, EntferneToolTip, 20000 ; <<<<< TololTip nach maximal 3000 Millisekunden entfernen
return
EntferneToolTip:
SetTimer, EntferneToolTip, Off
ToolTip
return
}