Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Работа со службами   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.035 c
6-1087306299
Григорьев Антон
2004-06-15 17:31
2004.12.12
Прошу оценить статью про сокеты


1-1101595689
Кто---то
2004-11-28 01:48
2004.12.12
Вопрос мастерам Как объяснить следующие утечки памяти ?


3-1099555085
Victor!
2004-11-04 10:58
2004.12.12
Как обойти дел. на ноль в JetSQL


14-1100881470
Defunct
2004-11-19 19:24
2004.12.12
Как избавиться от порносайтов?!


3-1100224787
kostan
2004-11-12 04:59
2004.12.12
Отлов в InterBase DeadLock через OnUpdateError не помогает





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