- Unit u_startservices;
- Interface
- Uses
- Windows, Messages, sysutils, variants, Classes, Graphics, Controls, Forms,
- Dialogs, Winsvc, Stdctrls;
- Type
- TForm1 = Class (Tform)
- Btn_startservices:tbutton;
- Btn_stopservices:tbutton;
- Procedure Btn_startservicesclick (Sender:tobject);
- Procedure Btn_stopservicesclick (Sender:tobject);
- Private
- {Private declarations}
- Public
- {Public declarations}
- End
- Var
- Form1:tform1;
- function startservices (const svrname:string): Boolean;
- Implementation
- {$R *.DFM}
- Open service
- function startservices (const svrname:string): Boolean;
- Var
- SCH, Svcsch:sc_handle;
- Arg:pchar;
- Dwstarttype:dword;
- Begin
- Result: = False;
- SCH: = OpenSCManager (nil, nil, sc_manager_all_access);
- If SCH <= 0 then Exit;
- Svcsch: = OpenService (SCH, PChar (svrname), service_all_access);
- if (Changeserviceconfig (
- Svcsch,//Handle of service
- Service_no_change,//service_no_change,//SERVICE Type:no Change
- Service_Auto_Start,//Change service START type
- Service_no_change,//Error Control:no change
- Nil,//binary Path:no change
- Nil,//load order Group:no change
- Nil,//tag Id:no change
- Nil,//dependencies:no change
- Nil,//account Name:no Change
- Nil,//password:no change
- Nil) Then
- ShowMessage (' Auto Start OK ')
- Else
- ShowMessage (' Auto Start Error ');
- If Svcsch <= 0 then Exit;
- Try
- Result: = StartService (Svcsch, 0, ARG);
- Closeservicehandle (Svcsch);
- Closeservicehandle (SCH);
- Except
- Closeservicehandle (Svcsch);
- Closeservicehandle (SCH);
- Exit;
- End
- End
- Stop Service
- function stopservices (const svrname:string): Boolean;
- Var
- SCH, Svcsch:sc_handle;
- Ss:tservicestatus;
- Begin
- Result: = False;
- SCH: = OpenSCManager (nil, nil, sc_manager_all_access);
- If SCH <= 0 then Exit;
- Svcsch: = OpenService (SCH, PChar (svrname), service_all_access);
- If Svcsch <= 0 then Exit;
- Try
- Result: = ControlService (Svcsch, Service_control_stop, SS);
- Closeservicehandle (SCH);
- Closeservicehandle (Svcsch);
- Except
- Closeservicehandle (SCH);
- Closeservicehandle (Svcsch);
- Exit;
- End
- End
- Procedure Tform1.btn_startservicesclick (Sender:tobject);
- Begin
- If Startservices (' policyagent ') = True Then
- Application. MessageBox (PChar (' PolicyAgent service started successfully '), PChar (' Service Information '), mb_iconinformation)
- Else
- Application. MessageBox (PChar (' PolicyAgent service failed to start '), PChar (' Service Information '), mb_iconerror);
- End
- Procedure Tform1.btn_stopservicesclick (Sender:tobject);
- Begin
- If Stopservices (' policyagent ') = True Then
- Application. MessageBox (PChar (' PolicyAgent Service stopped successfully '), PChar (' Service Information '), mb_iconinformation)
- Else
- Application. MessageBox (PChar (' PolicyAgent Service stopped successfully '), PChar (' Service Information '), mb_iconerror);
- End
- End.
Copy Code |