![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |