![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Службы Windows [D7, Win2k, WinXP]
Jupiter74 © (2005-10-22 13:56:00)Нужно из программы остановить и запустить определенную службу Windows. Служба не из стандартных, как служба работает программа
Digitman (2005-10-25 16:42:00) [1]
> Служба не из стандартных
это как ?
tesseract (2005-10-25 16:25:00) [2]use winsvc;
procedure ServiceWorks;
var hService,hSCmanager:cardinal;
ServStat:PserviceStatus;
Pathname:PChar;
begin
// Создание сервиса
new(ServStat);
PathName :='c:\Документы\projects\service\serv.exe';
hScManager:=openScManager(nil,nil,SC_MANAGER_ALL_ACCESS);
if hSCMANAGER=0 then begin ShowMessage('Failed to create Database'); exit;end;
hService := CreateService(
hSCManager, // SCManager database
'MyServ', // name of service
'MyServ', // service name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS, // service type
SERVICE_DEMAND_START, // start type
SERVICE_ERROR_NORMAL, // error control type
PathName, // service's binary
nil, // no load ordering group
nil, // no tag identifier
nil, // no dependencies
nil, // LocalSystem account
nil); // no password
if (hService = 0 ) then
ShowMessage( ' Failed CreateService' +inttostr(GetLastError))
else
ShowMessage('Success ');
// Открытие запущеннного сервиса
hScManager:=openScManager(nil,nil,SC_MANAGER_ALL_ACCESS);
hService := OpenService(hSCManager,'MyServ',SERVICE_ALL_ACCESS);
// Снятие с паузы
ControlService(hService,SERVICE_CONTROL_CONTINUE,@ServStat);
// Пауза
ControlService(hService,SERVICE_CONTROL_PAUSE,@ServStat);
//Стоп
ControlService(hService,SERVICE_CONTROL_STOP,@ServStat);
//Удаление сервиса (вааапще)
if not DeleteService(hService) then
ShowMessage('Error DeleteService')
else
ShowMessage('DeleteService OK');
CloseServiceHandle(hService);
end;
kami (2005-10-22 15:37:00) [3]OpenSCManager=>OpenService=>ControlService