Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.036 c
14-1101283486
PVOzerski
2004-11-24 11:04
2004.12.12
USB-принтер с NT4 - возможно ли?


4-1099046847
Студент КНТУ
2004-10-29 14:47
2004.12.12
WIN API+ Монитор


14-1100943955
cyborg
2004-11-20 12:45
2004.12.12
Обхохотаться можно :)


14-1101226654
ИМХО
2004-11-23 19:17
2004.12.12
Агентства переводов


14-1100831566
ИМХО
2004-11-19 05:32
2004.12.12
Роман с камнем, мелодия





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский