Naprogramujte si budík v notepadu


11.10.2006

Už se vám určitě někdy stalo, že jste seděli ve studovně, v kavárně či někde jinde a potřebovali jste si hlídat čas, neboť nechcete prošvihnout přednášku (spíš rande, ještě jsem neviděl někoho koho by mrzela zmeškaná přednáška). Chtělo by to tedy nějaký budík, ale jako na potvoru hodinky ručičkové, budík v mobilu taky nepoužijete neboť vám chcípnul potvora jeden a nějaký softwarový budík si nemůžete nainstalovat, protože jste přihlášeni pod účtem s omezenými právy. Tak a včíl babo raď!

Použijeme tedy prostředků operačního systému a napíšeme si budík vlastní, nebude mít sice zrovna oslňující vzhled hodný 21. století, ale nám bude stačit neboť si ho uděláme sami. jelikož vbscriptu nefandím, použijeme starý dobrý dávkový soubor .bat nyní .cmd

První možností je využít programu ping pro počkání x minut, druhou je kontrolovat v cyklu zda nastal požadovaný čas.

Řešení s pingem:

@echo off & setlocal enableextensions enabledelayedexpansion

SET /p timeout="Zadej pocet minut do zobrazeni zpravy:"
SET /P Message=Zadej text zpravy:
SET /A timeout =  60*%timeout%
echo %timeout%

ping -n %timeout% localhost>null

echo %message% > message.txt
start /wait notepad.exe message.txt
del message.txt
endlocal

Řešení s cyklem:

@echo off & setlocal enableextensions
MODE CON: CP SELECT=852
CLS
SET /p timev="Zadej cas alarmu ve tvaru HH:MM >"
SET /P message=Zadej text zpravy:
chcp 1250
MODE CON lines=2 cols=22

echo Alarm v %timev%

:Repeat
 SET timenow=%time:~0,8%
 IF NOT "%timenow%"=="%timelast%" ( 
  TITLE %timenow%
 )
 set timelast=%timenow%
 IF "%time:~0,5%"=="%timev%" GOTO Alarm

 GOTO Repeat

:Alarm
 TITLE %time:~0,8%
 echo %message% > message.txt
 start /wait notepad.exe message.txt
 del message.txt

rem PAUSE
endlocal

Druhé řešení se mi libí více, neboť ukazuje aktuální čas a při zadávání času alarmu nemusím přepočítavat čas na minuty jako u prvního příkladu, ale zadávám rovnou čas HH:MM, pokud někomu v druhém přikladu nestačí minutová přesnost, lze jej jednuše upravit změnou %time:~0,5% na %time:~0,8% (a tedy i alarm musíme zadávat ve formátu HH:MM:SS). v obou řešeních využívám pro zobrazení alrmu se zprávou notepad, jistě vás napadne mnoho dalších jiných a lepších řešení. Oba příklady uložte např v notepadu s koncovkou cmd (nebo bat), měli by fungovat v Win XP, ve starších verzích jsem to netestoval, ale snad by tomělo chodit i ve Win 98.