|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi 7 написание сервиса (службы) |
|
Delphi - Delphi 7 написание сервиса (службы)
|
Пользователь Сообщения: 89 |
Добрый день!
Пишу службу на Delphi 7 (ОС Windows 7), идея такова: идет таймер, в событиях таймера прописано, например: if timetostr(time)='02:00:00' then ... что-то делать. Службу компилировал, зарегистрировал, когда запускаю - пишет сразу что служба остановлена т.к. ей нечего делать. Конечно не сразу стал тут писать, загуглил, прочел что надо что-нибудь написать в процедуре ServiceExecute, но ни один из предложенных вариантов у меня не заработал. Пробовал писать в той процедуре следующее: 1. timer1.enabled=true (хотя изначально я это писал на процедуре старта) 2. ServiceThread.ProcessRequests(true); и false тоже 3. Разные вариации на тему while not Terminated do (так же таймер запускал, писал ServiceThread.ProcessRequests с true и false) 4. Пытался по-своему извращаться, присваивал какой-нить переменной какое-нить значение, даже проверки какие-то пытался писать в качестве заглушки. Результат один: при запуске службы она сразу же останавливается. Сразу говорю, дабы исключить ошибку в коде пробовал те же самые телодвижения делать в обычном приложении (не в службе) - и оно работает! Подскажите пожалуйста, как все-таки эту заразу заставить заработать? Спасибо! |
|
Отправлено: 19:10, 03-01-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Приведите Ваш код. Весь.
|
Отправлено: 21:18, 03-01-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 89
|
Профиль | Отправить PM | Цитировать Вот привожу код. Основные события должны были выполняться в TService1.Timer1Timer - на данный момент мне нужно чтоб строка записывалась в файлы для проверки работы службы, я думаю если я добьюсь того что оно начнет работать и писать в файл тогда можно будет и другие события добавлять.
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, ExtCtrls, DB, ADODB; type TService1 = class(TService) Timer1: TTimer; adocon: TADOConnection; procedure ServiceStart(Sender: TService; var Started: Boolean); procedure ServiceExecute(Sender: TService); procedure Timer1Timer(Sender: TObject); procedure ServiceStop(Sender: TService; var Stopped: Boolean); private { Private declarations } public function GetServiceController: TServiceController; override; { Public declarations } end; var Service1: TService1; t:integer; f: textfile; cs: textfile; implementation {$R *.DFM} procedure ServiceController(CtrlCode: DWord); stdcall; begin Service1.Controller(CtrlCode); end; function TService1.GetServiceController: TServiceController; begin Result := ServiceController; end; procedure TService1.ServiceStart(Sender: TService; var Started: Boolean); var strcon:string; begin started:=true; t:=0; AssignFile(F, 'D:\Progs\test_service\test.txt'); AssignFile(cs, 'connectionstring.txt'); rewrite(f); reset(cs); read(cs, strcon); adocon.ConnectionString:=strcon; adocon.Connected:=true; timer1.Enabled:=true; end; procedure TService1.ServiceExecute(Sender: TService); //var a:byte; begin //while not Terminated do // a:=1; //timer1.Enabled:=true; //if timetostr(time)='00:00:00' then timer1.Enabled:=true; ServiceThread.ProcessRequests(true); end; procedure TService1.Timer1Timer(Sender: TObject); begin if timetostr(time)='16:10:00' then Writeln(f, 'õóé'); //t:=t+1; //if t mod 5 =0 then //begin // Writeln(f, 'õóé'); // showmessage('test'); // end; //if t>1000 then t:=0; end; procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean); begin closefile(f); closefile(cs); stopped:=true; end; end. |
Отправлено: 15:48, 05-01-2014 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Написание сайта | PulSar.CE194694 | Вебмастеру | 6 | 18-06-2013 14:36 | |
Delphi - [решено] Написание проги в delphi | Rock Star | Программирование и базы данных | 1 | 07-04-2011 15:08 | |
Написание вирусов... | JCooper | Программирование и базы данных | 11 | 07-08-2002 12:42 | |
Написание прог | Apis.NET | Программирование и базы данных | 13 | 28-06-2002 19:00 |
|