Программирование для Windows NT (том 2)

         

Получаем буфер для сохранения


        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,


Содержание  Назад  Вперед