Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
Внизэлементарное в TService Найти похожие ветки
← →
girich (2004-02-19 14:20) [0]Столкнулся с необходимостью написать службу но так как до этого не работал с этой темой Прошу подсказать - написал обработчик события onExecute
procedure TService1.ServiceExecute(Sender: TService);
begin
while not Terminated do
begin
WriteFileMessage1(01,"aaaaaaa",03); //моя проц. пишет в
заданный файл строку заданную;
Sleep(1000);
end;
end;
Инсталирую запускаю службу всё нормально, пытаюся остановить выдайт сообщение :
"Неудалось остановить службу на лок. компьютере. Этаслужба не возвращала ошибки ....."
И еще если есть ссылки на тему написания сервисов и интерфейса к ним прошу написать.
Заранее спасибо.
← →
girich (2004-02-19 14:44) [1]Ало кто нибуть!
← →
Digitman (2004-02-19 15:06) [2]procedure TEtkaSvc.ServiceExecute(Sender: TService);
var
Msg: TMsg;
begin
while not Terminated do
begin
WaitMessage;
if PeekMessage(Msg, 0, WM_ETKAHOOK, WM_ETKAHOOK, PM_REMOVE) then
ProcessEtkaHookMessage(PMessage(@Msg.Message)^)
else
ServiceThread.ProcessRequests(False);
end;
end;
← →
girich (2004-02-19 15:53) [3]>Digitman © (19.02.04 15:06) [2]
Спасибо получилось.
А подсказать по поводу создания интерфейса для сервисов что-то можешь (ссылка, исх. код , ...)
← →
Digitman (2004-02-19 16:10) [4]
> girich (19.02.04 15:53) [3]
> А подсказать по поводу создания интерфейса для сервисов
> что-то можешь
в смысле - GUI ?
здесь самое простое и надежное решение - создавать VCL-контролы (например, формы) в событии TService.OnCreate, а уничтожать - в OnDestroy() ... эти события возбуждаются в осн.код.потоке приложения-сервиса, поэтому никаких проблем не будет ... но не пытайся делать то же самое в OnExecute, OnStart, OnStop ! Грабли будут тебе обеспечены)
← →
girich (2004-02-19 16:30) [5]>Digitman © (19.02.04 16:10) [4]
>здесь самое простое и надежное решение - создавать VCL-контролы (например, формы)
А использование, допустим этой формы, будет бес проблематично в любом месте например в OnExecute, OnStart, OnStop!
← →
Digitman (2004-02-19 16:40) [6]
> girich (19.02.04 16:30) [5]
к методам и св-вам формы в обработчиках этих событий, разумеется, напрямую нельзя - нужна синхр-ция с осн.код.потоком. создавшим VCL-форму
использовать метод TServiceThread.Synchronize ты не сможешь - он защищенный
из наиболее простых остается чуть ли не один вариант - посылка сообщений окну формы (Send/Postmessage)
уверяю - вариант далеко не худший ... и вполне удобный для большинства целей
← →
dr Tr0jan (2004-02-21 06:52) [7]Зайди и посмотри:
http://delphimaster.net/view/1-1077189620/
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c