![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запуск службы
F@T@L_Err0r © (2008-03-17 11:12:00)Здравствуйте.Подскажите пожалуйста какиим образом програмно можно запустить виндовсскую службу и как перед этим получить ее имя?Понятно что под администратором.Зараннее спасибо!
Slym (2008-03-17 13:26:00) [41]
var
SCManager:THandle;
Service:THandle;
p:PChar;
begin
SCManager:=OpenSCManager('',nil,GENERIC_READ);
if SCManager=0 then RaiseLastOSError;
try
Service:=OpenService(SCManager, 'ИМЯ СЕРВИСА',SERVICE_QUERY_STATUS or SERVICE_START or SERVICE_STOP);
if Service=0 then RaiseLastOSError;
try
p:=nil;
if not StartService(Service,0,p) then
RaiseLastOSError;
finally
CloseServiceHandle(Service);
end;
finally
CloseServiceHandle(SCManager);
end;
Skyle (2008-03-17 13:26:00) [42]
> F@T@L_Err0r (17.03.08 13:22) [11]
> s:= OpenService(0,'C:\WINDOWS\system32\svchost.exe -k netsvcs',
> 0);
Справку открывал по этим функциям? Вот только честно...
F@T@L_Err0r (2008-03-17 13:22:00) [43]s:= OpenService(0,'C:\WINDOWS\system32\svchost.exe -k netsvcs',0);
StartService(s,0,0);
Где ошибка???Если количество аргументов то насколько я понимаю ето цифры?Или я не прав???
Slym (2008-03-17 13:20:00) [44]var p:PChar;
begin
p:=nil;
if not StartService(Service,0,p) then
RaiseLastOSError;
end;
clickmaker (2008-03-17 13:15:00) [45]
> [8] F@T@L_Err0r (17.03.08 13:08)
там количество аргументов командной строки и они сами, в виде массива строк (PChar, вернее)
F@T@L_Err0r (2008-03-17 13:08:00) [46]я уже понял чт онада вызвать сначала OpenServise и то что он вернет нада подставить в первый аргумент функции StartServise но все же я не могу разобратся в остальных двух параметрах...подскажите....или пример...
clickmaker (2008-03-17 13:03:00) [47]
> [6] F@T@L_Err0r (17.03.08 13:02)
> А что писать во втором и третьим параметрах???
ты сначала первый правильно укажи...
F@T@L_Err0r (2008-03-17 13:02:00) [48]А что писать во втором и третьим параметрах???
StartService('C:\WINDOWS\system32\svchost.exe -k netsvcs',?,?);
Не могу разобратся помогите плиз....
Reindeer Moss Eater (2008-03-17 11:50:00) [49]А в первом ответе тебе не сказали?
F@T@L_Err0r (2008-03-17 11:32:00) [50]>получить имя, зная что?
Все имя я знаю...Точнее путь к екзешнику...А теперь вопрос.В каком модуле находятся OpenService, StartService???
clickmaker (2008-03-17 11:24:00) [51]
> програмно можно запустить виндовсскую службу и как перед
> этим получить ее имя?
получить имя, зная что?
запустить - OpenService, StartService
F@T@L_Err0r (2008-03-17 11:22:00) [52]Ето ???
BOOL ChangeServiceConfig(
SC_HANDLE hService, // handle to service
DWORD dwServiceType, // type of service
DWORD dwStartType, // when to start service
DWORD dwErrorControl, // severity if service fails to start
LPCTSTR lpBinaryPathName, // pointer to service binary file name
LPCTSTR lpLoadOrderGroup, // pointer to load ordering group name
LPDWORD lpdwTagId, // pointer to variable to get tag identifier
LPCTSTR lpDependencies, // pointer to array of dependency names
LPCTSTR lpServiceStartName, // pointer to account name of service
LPCTSTR lpPassword, // pointer to password for service account
LPCTSTR lpDisplayName // pointer to display name
);
Если да то возникает вопрос как получит handle of servise?
Если можно то приблизительный пример заполнения параметров...Пожалуйста...
Reindeer Moss Eater (2008-03-17 11:17:00) [53]uses WinSvc;