Форум: "WinAPI";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизРабота со службами Найти похожие ветки
← →
Anti (2004-10-25 22:08) [0]Мастера! сложный вопрос. Как мне реалтизовать программу, которая должна изменять параметры запуска определенной службы. Главное чтобы были права системы/администратора.
Изменять параметры запуска то есть "Авто", "Вручную", "Отключена"
← →
Cobalt © (2004-10-25 23:33) [1]Поищи тут в форуме - наверняка найдёшь вопросы про службы.
К модераторам - эту тему, видимо, тоже пора в FAQ заносить
← →
Anti (2004-10-26 00:13) [2]Нету +(((
← →
sniknik © (2004-10-26 08:40) [3]попробуй разобрать
http://delphi.chertenok.ru/forum/my_download.php?tema=del&action=show&id=173
наверняка найдеш то что нужно, если не в самом примере то в хелпе по используемым там функциям. (хотя бы будеш знать что искать)
← →
Дмитрий Ботвин (2004-10-26 09:10) [4]Ну на счет сложного вопроса ты явно погорячился :-)))
Щас мы тебе поможем:
Подключай модуль Winsvc и вот тебе процедура:
//Установка типа запуска сервиса
procedure TForm1.Button1Click(Sender: TObject);
var
SCManager, Service: SC_HANDLE;
TypeStart: DWORD;
error, i: integer;
ServiceName: String;
begin
error:=0;
if ListView1.Items.Count=0 then exit;
if not Assigned(ListView1.Selected) then Exit;
i:=ListView1.Selected.Index;
ServiceName:=ListView1.Items.Item[i].Caption;
case ComboBox1.ItemIndex of
0: TypeStart:=SERVICE_AUTO_START;
1: TypeStart:=SERVICE_DEMAND_START;
2: TypeStart:=SERVICE_DISABLED;
end;
//Получаем старые параметры конфигурации
SCManager := OpenSCManager(PChar(Form1.CompName.Text), nil, GENERIC_READ);
if SCManager <> 0 then
begin
Service := OpenService(SCManager, PChar(ServiceName), SERVICE_CHANGE_CONFIG);
if Service <> 0 then
begin
//Устанавливаем новые параметры конфигурации
if not(ChangeServiceConfig(Service, SERVICE_NO_CHANGE,
TypeStart, SERVICE_NO_CHANGE, nil, nil, nil, nil,
nil, nil, nil)) then error:=1;
CloseServiceHandle(Service);
end
else error:=1;
CloseServiceHandle(SCManager);
end
else error:=1;
if error=1 then Application.MessageBox("Не могу изменить тип запуска сервиса!","Изменение конфигурации сервиса",
MB_OK+MB_ICONQUESTION)
else CreateServiceList;
end;
У меня в ListView1 формируется список служб, а в ComboBox1
заношу "Авто", "Вручную" и "Отключено".
Если интересно как получить список служб пиши. Если чё не понятно, тоже пиши :-)))
← →
Дмитрий Ботвин (2004-10-26 10:29) [5]Забыл написать процедура CreateServiceList обновляет список
служб с учетом нового типа запуска. Удали её вызов из модуля...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c