PDA

View Full Version : متوقف کردن یک سرویس اپلیکیشن از داخل خودش



صابر طهماسبی
جمعه 17 اردیبهشت 1389, 13:57 عصر
سلام
یک برنامه ی ServiceApplication دارم می نویسم که کنار ساعت ویندوز آیکونش نمایش داده میشه که روی آن کلیک راست می کنی منو باز میشه و می توان اطلاعاتی را در فایلی نوشت و خواند.
مشکل اینجاست هرچی گشتم نفهمیدم که چطور داخل خود برنامه سرویس را متوقف کرد و برنامه را از کار انداخت چون Terminate نداره!
این هم کد من:

lord_viper
جمعه 17 اردیبهشت 1389, 16:19 عصر
فایل زیپ انگار مشکل داره Extrace نمیشه
ولی معمولا سرویس ها به صورت زیر Stop میشن



uses
winsvc;

procedure TForm1.Button1Click(Sender: TObject);
var
Scm, Svc: SC_Handle;
Status: SERVICE_STATUS;
begin
Scm := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if Scm <> 0 then begin
Svc := OpenService(Scm, PChar(ServiceName), SERVICE_ALL_ACCESS);
if Svc <> 0 then begin
ControlService(Svc, SERVICE_CONTROL_STOP, Status);
// handle Status....
CloseServiceHandle(Svc);
end;
CloseServiceHandle(Scm);
end;
end;


http://www.tolderlund.eu/delphi/service/service.htm