AliReza Vafakhah
شنبه 19 تیر 1389, 18:02 عصر
سلام دوستان
یک سرویس نوشتم ، که با توجه به مطالب این تاپیک (http://www.barnamenevis.org/forum/showthread.php?t=12902) ، سرویس را Install می کنم و در لیست سرویس ها هم اضافه میشه و مشکلی هم نداره ، هنگامی که پروژه را کامپایل می کنم با پارامتر Install/ اجرا میکنم و سرویس نصب میشه و مشکل اینجا هست که فقط همین موقعه که سرویس نصب میشه سرویس اجرا میشه و مشکل دیگه این هست که سرویس در همین بار اول که در حال اجرا هست ، در لیست سرویس ها سرویس Stopped هست ! ، و بعد از بستن پروسس سرویس دیگه سرویس اجرا نمیشه و وقتی هم سرویس را Start می کنم با پیغام زیر روبه رو می شوم .
دوستان کد را هم قرار می دهم
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
ExtCtrls;
type
TmyService = class(TService)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure ServiceExecute(Sender: TService);
procedure ServiceAfterInstall(Sender: TService);
procedure ServiceStart(Sender: TService; var Started: Boolean);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;
var
myService: TmyService;
implementation
{$R *.DFM}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
myService.Controller(CtrlCode);
end;
function TmyService.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
procedure TmyService.ServiceAfterInstall(Sender: TService);
begin
ShowMessage('installed')
end;
procedure TmyService.ServiceExecute(Sender: TService);
begin
while not Terminated do
ServiceThread.ProcessRequests(True);// wait for termination
end;
procedure TmyService.ServiceStart(Sender: TService; var Started: Boolean);
begin
ShowMessage('starting');
end;
procedure TmyService.Timer1Timer(Sender: TObject);
begin
ShowMessage('working');
end;
end.
یک سرویس نوشتم ، که با توجه به مطالب این تاپیک (http://www.barnamenevis.org/forum/showthread.php?t=12902) ، سرویس را Install می کنم و در لیست سرویس ها هم اضافه میشه و مشکلی هم نداره ، هنگامی که پروژه را کامپایل می کنم با پارامتر Install/ اجرا میکنم و سرویس نصب میشه و مشکل اینجا هست که فقط همین موقعه که سرویس نصب میشه سرویس اجرا میشه و مشکل دیگه این هست که سرویس در همین بار اول که در حال اجرا هست ، در لیست سرویس ها سرویس Stopped هست ! ، و بعد از بستن پروسس سرویس دیگه سرویس اجرا نمیشه و وقتی هم سرویس را Start می کنم با پیغام زیر روبه رو می شوم .
دوستان کد را هم قرار می دهم
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
ExtCtrls;
type
TmyService = class(TService)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure ServiceExecute(Sender: TService);
procedure ServiceAfterInstall(Sender: TService);
procedure ServiceStart(Sender: TService; var Started: Boolean);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;
var
myService: TmyService;
implementation
{$R *.DFM}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
myService.Controller(CtrlCode);
end;
function TmyService.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
procedure TmyService.ServiceAfterInstall(Sender: TService);
begin
ShowMessage('installed')
end;
procedure TmyService.ServiceExecute(Sender: TService);
begin
while not Terminated do
ServiceThread.ProcessRequests(True);// wait for termination
end;
procedure TmyService.ServiceStart(Sender: TService; var Started: Boolean);
begin
ShowMessage('starting');
end;
procedure TmyService.Timer1Timer(Sender: TObject);
begin
ShowMessage('working');
end;
end.