Главная страница
    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.037 c
4-1098963515
griff
2004-10-28 15:38
2004.12.12
Узнать путь до excel


6-1096729488
Луарвик
2004-10-02 19:04
2004.12.12
Правильный запрос (а не вопрос :))


4-1099148447
Zq
2004-10-30 19:00
2004.12.12
Как узнать и поменять уровень общей громкости звука


14-1101202174
digger
2004-11-23 12:29
2004.12.12
Чипы и число 666


1-1101447353
Рафик
2004-11-26 08:35
2004.12.12
Вопрос по TreeView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский