Главная страница
    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
8-1095414104
Гость
2004-09-17 13:41
2004.12.12
GDI+. Как правильно работать с MeasureCharacterRanges


1-1101704260
Dreamse
2004-11-29 07:57
2004.12.12
Проблема с treeview


14-1101051359
RusLAN_
2004-11-21 18:35
2004.12.12
Неподходит пароль к своему нику (_RusLAN)


14-1100981122
Piter
2004-11-20 23:05
2004.12.12
Почему ВЫ не используете клиент?


14-1100816074
Чайник
2004-11-19 01:14
2004.12.12
Форматы документов djv и djvu





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