El Tutos Timer: Windows-App für wiederholte Erinnerungen
In 5 Minuten an Tee erinnern? Oder 8 mal alle 45 Minuten an Sport? Kein Problem.
Wie das manchmal so ist: Ich suche eine freie Deskop-App für wiederholte Erinnerungen, finde das scheinbar ziemlich gute RemindMe, das stürzt ab, also selber machen - wofür gibt es schließlich AutoHotkey ;) Herausgekommen ist ein simpler Timer, vielleicht auch für Euch interessant.
El Tutos Timer
Gleich vorweg: Der Timer kann nicht viel, einfach weil für mich selbst geschrieben - Ihr könnt ihn aber nach belieben erweitern, AutoHotkey ist relativ simpel, wie unsere Einführung zeigen sollte. Bislang könnt Ihr eine Erinnerung lostreten, den Zeitraum in Minuten sowie die Anzahl der Wiederholungen festlegen. Die Erinnerung selbst erfolgt per Audio, entweder über einen Beep, einen eigens komponierten Beat oder eine der eingesprochenen Audiodateien (die eigentlich eher als Demo gedacht waren, aber ich lasse sie mal drin).
Ihr könnt El Tutos Timer einfach in Form einer portablen EXE-Datei nutzen, aber auch als AutoHotkey-Skript im AHK-Format. Für den Gebrauch als Skript muss natürlich AutoHotkey selbst bei Euch installiert sein, die EXE läuft komplett eigenständig.
Vorteil der Skriptversion: Ihr könnt das Skript anpassen, wenn Ihr keine Angst vor Code habt. Die Audiodateien könnt Ihr so oder so gegen andere MP3s mit denselben Namen austauschen. Die Downloads enthalten beide Versionen.
Downloads:
El Tutos Timer 0.1 El Tutos Timer - Deamon Edition (der Spielerei halber ;) )
Und wenn Ihr doch ein wenig mehr wissen wollt:
Making of
Das ist schnell erzählt: Für die GUI habe ich das großartige AutoGUI verwendet, ein simpler WYSIWYG-Editor für AutoHotkey-Oberflächen - und selbst ein AutoHotkey-Skript! In der GUI gibt es nur etwas Text, einen Button, zwei Textfelder für Intervall und Wiederholungen sowie ein Drop-Down-Menü für die Sounds:
Element | Variable | Wert |
---|---|---|
Edit1 | minVar | Intervall in Minuten |
Edit2 | timesVar | Anzahl Wiederholungen |
ComboBox1 | soundVar | Audiodateiname |
Button1 | ggo | Startet den Code unter "go" |
Wobei ggo keine Variable ist, sondern ein g-label, eine Gusob-/Gehe-nach-unten-Anweisung. Und diese Werte landen dann logischerweise in dem popeligen Code:
go:
controlGet, timesVar, Line, 1, Edit2
controlGet, minVar, Line, 1, Edit1
controlGet, soundVar, Choice,, ComboBox1
minVar := minVar * 60000
loop, %timesVar%
{
sleep, %minVar%
SoundPlay, %soundVar%.mp3, Wait
}
sleep, 2000
SoundPlay, Ende.mp3, Wait
exit
go ist schlicht der Startpunkt für die Abrbeitung durch den Button. Die controlGet-Zeilen lesen die vom Nutzer in der GUI gesetzten Werte aus. minVar/Zeit in Minuten wird dann noch mit 60.000 multipliziert, da AutoHotkey wie üblich in Milisekunden rechnet.
loop lässt den Code in Klammern timesVar-mal durchlaufen, sleep wartet dann minVar-Minuten - fertig sind die wiederholten Erinnerungen. Der Part nach der Klammer spielt 2.000 Milisekunden nach der letzten Erinnerung noch die Audiodatei Ende.mp3 ab, damit Ihr wißt, dass der Spuk nun vorbei ist.
Nachtrag: Es ist jetzt noch ein Abbrechen-Button hinzugekommen; neu ist dabei nur die Anweisung GuiControl, Disable/Disable, Button123, um den jeweils nicht nutzbaren Button auszugrauen.
Wer weiß, vielleicht wird das Ding auch noch irgendwann erweitert, Ansprüche entstehen ja meist bei der Nutzung. Solltet Ihr den Timer tatsächlich nutzen wollen, Euch aber etwas fehlt, sagt Bescheid. Manche Dinge lassen sich einfacher umsetzen (etwa Startbestätigung oder Erinnerung per Fenster statt Ton), andere machen schnell viel Aufwand, etwa unendlich viele Timer.
Und der Vollständigkeit halber hier nochmal der komplette Quelltext - den Ihr im Zweifel aber besser aus dem Download nehmt! Wordpress macht manchmal komisches Zeugs ...
; Generated by AutoGUI 2.2.6a
#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
Menu Tray, Icon, %A_ScriptDir%\media\HalfKeyboard.ico
Gui -MaximizeBox
Gui Add, Edit, x182 y32 w50 h21, 60
Gui Add, Edit, x182 y8 w50 h21, 1
Gui Add, Button, ggo x59 y82 w147 h21, Erinnerung starten
Gui Add, Button, gstop x59 y105 w147 h21, Erinnerung abbrechen
Gui Add, Text, x33 y8 w147 h21 +0x200, Wie oft soll erinnert werden?
Gui Add, Text, x33 y32 w147 h21 +0x200, Abstand in Minuten:
Gui Add, DropDownList, vsound x182 y56 w50, Piep||Sport|Tee|Meeting|Foobar|Pause|Beat
Gui Add, Text, x33 y56 w147 h21 +0x200, Sound für Erinnerung wählen:
GuiControl, Disable, Button2
; Gui Add, Picture, x0 y0 w265 h134 +0x4000000, %A_ScriptDir%\media\background.png
Gui Show, w265 h134, El Tutos Timer
Return
GuiEscape:
GuiClose:
ExitApp
; Do not edit above this line
go:
controlGet, timesVar, Line, 1, Edit2
controlGet, minVar, Line, 1, Edit1
controlGet, soundVar, Choice,, ComboBox1
minVar := minVar * 60000
GuiControl, Disable, Button1
GuiControl, Enable, Button2
loop, %timesVar%
{
sleep, %minVar%
SoundPlay, %A_ScriptDir%\media\%soundVar%.mp3, Wait
}
GuiControl, Enable, Button1
GuiControl, Disable, Button2
sleep, 2000
SoundPlay, %A_ScriptDir%\media\Ende.mp3, Wait
exit
stop:
GuiControl, Enable, Button1
GuiControl, Disable, Button2
reload
P.S.: Oder Ihr vergesst den Kram und setzt auf gute alte Hardware - hier weniger flexibel, aber mächtig stylisch, irgendwie ...