Uruchamianie procedury o danej godzinie.

0

Witam!
W jaki sposób zaimplementować uruchamianie danej procedury o podanej godzinie. Nie mam zielonego pojęcia jak się do tego zabrać. Przyjmujemy oczywiście że program będzie uruchomiony cały czas, jeśli jednak nie będzie uruchomiony to jak zrobić przypomnienie o tym że nie zostało wykonane i czy wykonać teraz.

Z góry dzięki za odpowiedź.

Pozdrawiam

0

Jak program nie będzie uruchomiony to przypomnieć może o nim tylko inny program :/. Co do wywołania procedury o określonym czasie proponuję zrobić tak:

Podejście a) Sprawdzasz ile milisekund jest od obecnej godziny do wywołania procedury. Jeśli jest mniejsza od zakresu Interval w Timerze, ustawisz wywołanie Timera na ten czas. Timer po upływie czasu powinien się wyłączyć oraz wywołać procedurę. Jeśli czas jest większy od zakresu Interval (wątpię), ustawiasz największy możliwy Interval, aby po jego upływie znów zacząć całość od początku.

Wymaga trochę gimnastyki :D

Delphi'owy timer możesz oczywiście zastąpić tym z WinAPI, jeśli chcesz zużyć odrobinę mniej zasobów.

Podejście b) Co jakiś czas sprawdzasz czy dana godzina już wybiła - dobre jak masz uruchomić program powiedzmy o 15:30 +- 5 minut. Masz wtedy margines 10 minut więc możesz odpalać Timer co 9 minut i sprawdzać. Jeśli jesteś o 5 minut od określonej godziny - wywołujesz procedurkę.

Im mniejszy masz margines czasu wywołania, tym bardziej obciążasz system częściej sprawdzając czas. Za to proste w wykonaniu.

Podejście c) Zatrudniasz do tego systemowy harmonogram zadań.

Proste, ale użytkownik może go nie mieć włączonego (ja nigdy nie mam, na przykład).

0

albo użyj komponentu CoolTrayicon i ustaw icon na false. Zobacz jak np jest zrobione to w przykładzie z: http://download.4programmers.net/keyidate.zip

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1