PDA

View Full Version : مشکل با Stop و یا Start در Service Application



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.

AliReza Vafakhah
یک شنبه 20 تیر 1389, 01:30 صبح
دوستان از ویندوز XP استفاده کردم و مشکلم حل شد اما در ویندوز 7 سرویس را نصب می کنم و حتی Start هم میشه و وضعیتش هم به Running تغییر پیدا می کنه اما کدی که در تایمر نوشتم اجرا نمیشه . دوستان مشکل از کجا کار هست .