Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Надо изменить название службы, Где хранится название службы в NT? 
:(
    Опции темы
кварк
Дата 9.7.2003, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 2.8.2002




Встала задача переименовать службу (которая показывается в списке служб Win2K) (Мы люди добрые - ничего плохого не подумайте :-))

Всю жизнь думал, что в реестре поискать - и все найдешь. До дела дошло - и так не оказалось.

Самое интуитивное место: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Служба
Там есть параметры: DisplayName и Description, я их меняю - в списке служб описание меняется, а название - нет. Как поменять название?


PM MAIL   Вверх
p0s0l
Дата 14.7.2003, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.




Вот процедурину написал - проверял, вроде работает.
Только тебе надо знать название службы (а не её выводимое имя).
Если название не знаешь - то:
OpenSCManager (...);
EnumServicesStatus (..., services, ...); // services - получает инфу о сервисах
// в services хранятся lpServiceName, lpDisplayName
ищешь там службу у которой lpDisplayName = старое название, берешь у нее lpServiceName
и юзаешь эту процедурину.
P.S. тебе нужен будет модуль WinSVC - если у тебя его нет, то скажи.

Код

uses WinSVC;
procedure SetNameForService(const service, displayName : string);
var
 sm, h : SC_Handle;
 siz : cardinal;
 info : PQueryServiceConfig;
 ok : boolean;
begin
 sm := OpenSCManager (nil, nil, SC_MANAGER_ALL_ACCESS);
 h := OpenService (sm, PChar(service), SERVICE_QUERY_CONFIG+SERVICE_CHANGE_CONFIG);
 if h <> 0 then
 begin
   siz := 0;
   QueryServiceConfig (h, info, siz, siz); // получили размер
   GetMem (info, siz);
   ok := false;
   if QueryServiceConfig (h, info, siz, siz) then
   begin
     ok := ChangeServiceConfig (h,
                        info^.dwServiceType,
                        info^.dwStartType,
                        info^.dwErrorControl,
                        info^.lpBinaryPathName,
                        info^.lpLoadOrderGroup,
                        nil,
                        info^.lpDependencies,
                        info^.lpServiceStartName,
                        nil,
                        PChar(displayName));
   end;
   FreeMem (info);
   CloseServiceHandle (h);
 end;
 CloseServiceHandle (sm);
 if not ok then MessageBox (0, 'Ошибка', 'Ошибка', MB_TASKMODAL+MB_ICONERROR);
end;



Это сообщение отредактировал(а) p0s0l - 14.7.2003, 01:57


--------------------
С уважением, г-н Посол.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Флейм | Следующая тема »


 




[ Время генерации скрипта: 0.0873 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.