Система И Сервисы

  • Автор темы Автор темы KaMaZ
  • Дата начала Дата начала
  • Для просмотра чата и остального функционала вам нужно авторизоваться или пройти регистрацию!
K

KaMaZ

Original poster
Удаление сервиса
Следующий пример сперва использует функцию OpenService для получения дескриптора сервиса с правом DELETE, а затем использует этот дескриптор в функции DeleteService для удаления этого сервиса из базы данных SCM.
[font=Courier New'][background=rgb(204, 204, 204)]
Код:
VOID DeleteSampleService() { schService = OpenService( schSCManager, // база данных SCManager "Sample_Srv", // имя сервиса DELETE); // нужно только удалить if (schService == NULL) MyErrorExit("OpenService"); if (! DeleteService(schService) ) MyErrorExit("DeleteService"); else printf("DeleteService SUCCESS\n"); CloseServiceHandle(schService); }
[/background]
[/font]
 
  • Like
Реакции: TONIK и >DENIS<
Установка сервиса
Чтобы проинсталлировать сервис в базе данных SCM, необходимо воспользоваться функцией CreateService. Для этого дескриптору schSCManager необходимо иметь права SC_MANAGER_CREATE_SERVICE в объекте SCManager. Следующий пример демонстрирует установку сервиса.
[font=Courier New'][background=rgb(204, 204, 204)]
Код:
VOID CreateSampleService() { LPCTSTR lpszBinaryPathName = "%SystemRoot%\\system\\testserv.exe"; schService = CreateService( schSCManager, // база данныйх SCManager "Sample_Srv", // имя сервиса lpszDisplayName, // имя, которое будет показываться SERVICE_ALL_ACCESS, // уровень доступа SERVICE_WIN32_OWN_PROCESS, // сервис будет запускаться // в собственном процессе SERVICE_DEMAND_START, // будет запускаться "вручную" SERVICE_ERROR_NORMAL, // стандартный режим // протоколирования ошибок lpszBinaryPathName, // путь к сервису NULL, // сервис не принадлежит группе NULL, // --""-- NULL, // нет зависимости NULL, // С правами системы NULL); // без пароля if (schService == NULL) MyErrorExit("CreateService"); else printf("CreateService SUCCESS.\n"); CloseServiceHandle(schService); }
[/background]
[/font]
 
  • Like
Реакции: TONIK и >DENIS<
Сверху Снизу