|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Запуск другой программы в заданное время
Приветствую уважемые специалисты.
Прошу помочь освежить память в отношении ООП на Delphi, заранее благодарен. Суть вопроса следующая- есть служба, ранее скомпилированная на Delphi, так вот необходимо в заданное время средствами Timer (к примеру 23:20) запустить exe другой программы - для примера блокнот. Уже всю голову изломал - ничего не выходит. Возможно кто то стыкался с подобными задачами? |
#2
|
|||
|
|||
Если мне не изменяет память, то в последних версиях служба не может создавать окна, соотв., таймер работать не будет. Как решение - создать дополнительный поток, который будет ждать нужного времени и запускать соотв. программу. Только надо сделать проверку, что бы не запускалось много копий. Например, по дате последнего запуска.
Что-то типа: Код:
unit RunAppThread; unterface uses ... type TRunAppThread = class(TThread) FLastRunDate : TDateTime; procedure Execure; override end; implementation procedure TRunAppThread.Execure; begin While Not Terminated Do begin if (FLastRunDate <> Date) And (HourOf(Time) = 23) And (MinuteOf(Time) = 20) Then Begin ShellExecute(...); // тут, возможно, придется делать через CreateProcess FLastRunDate := Date; End; Sleep(15000); // Пауза в 15 секунд, можно сделать в 30 секунд end; end; |