Получаем буфер для сохранения
SERVICE_ALL_ACCESS);
if(!schService)
break;
// Запускаем сервис
StartService(schService, 0, NULL);
// Закрываем идентификатор системы управления
// сервисами
CloseServiceHandle(schSCManager);
break;
}
case ID_SERVICE_STOP:
{
// Открываем систему управления сервисами
schSCManager = OpenSCManager(NULL, NULL,
SC_MANAGER_ALL_ACCESS);
if(!schSCManager)
break;
// Открываем сервис с именем MYServiceName
schService = OpenService(
schSCManager, MYServiceName,
SERVICE_ALL_ACCESS);
// Останавливаем сервис
ControlService(schService,
SERVICE_CONTROL_STOP, &ss);
// Закрываем идентификатор системы управления
// сервисами
CloseServiceHandle(schSCManager);
break;
}
case ID_SERVICE_GETCONFIGURATION:
{
// Открываем систему управления сервисами
schSCManager = OpenSCManager(NULL, NULL,
SC_MANAGER_ALL_ACCESS);
if(!schSCManager)
break;
// Открываем сервис с именем MYServiceName
schService = OpenService(
schSCManager, MYServiceName,
SERVICE_ALL_ACCESS);
if(!schService)
break;
// Получаем буфер для сохранения конфигурации
lpBuf = (LPQUERY_SERVICE_CONFIG)malloc(4096);
if(lpBuf != NULL)
{
// Сохраняем конфигурацию в буфере
QueryServiceConfig(schService,
lpBuf, 4096, &dwBytesNeeded);
// Отображаем некоторые поля конфигурации
wsprintf(szBuf, "Binary path: %s\n"
"Start Name: %s\n"
"Display Name: %s\n",
lpBuf->lpBinaryPathName,
lpBuf->lpServiceStartName,
lpBuf->lpDisplayName);
MessageBox(hWnd, szBuf, szAppTitle,
Содержание Назад Вперед