1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| // Démarre un service
function TForm1.ServiceStart( SrvName : string; Machine : string = '' ) : Boolean;
var SrvHandle : Cardinal;
ServiceArgVectors : PAnsiChar;
// Ouvre un service
function ServiceOpen( SrvName : string; Machine : string = '' ) : Cardinal;
var H_SC : SC_Handle;
begin
if ( Machine = '' ) then
H_SC := OpenSCManager( nil, nil, SC_MANAGER_ALL_ACCESS )
else
H_SC := OpenSCManager( PChar( Machine ), nil, SC_MANAGER_ALL_ACCESS );
Result := OpenService( H_SC, PChar( SrvName ), SC_MANAGER_ALL_ACCESS );
end;
begin
Result := False;
ServiceArgVectors := nil;
SrvHandle := ServiceOpen( SrvName, Machine );
try
Result := ( StartService( SrvHandle, 0, ServiceArgVectors ) );
finally
CloseServiceHandle( SrvHandle );
end;
end; |
Partager