Подождите, пока служба запустится / остановится - PullRequest
2 голосов
/ 09 июня 2011

Я использую сервисный контроллер в C ++ для управления службой Windows.

Я могу использовать функции StartService( ) и ControlService( ) для запуска и остановки службы.

Однако,Есть ли стандартный способ ожидания запуска и остановки службы на самом деле?

Очевидно, я мог бы зациклить вызов QueryServiceStatusEx( ) и подождать, пока статус не будет Running или Stopped соответственно.

Есть ли более аккуратный способ достижения того же самого?

Спасибо.

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Afaik Service запускает и останавливает создание событий журнала событий Windows.Может быть, вы могли бы установить обработчик для тех и ждать события из вашего приложения.Если ваше приложение также является сервисным, пометьте его как зависящее от стороннего сервиса, тогда вам не нужно ждать его.

0 голосов
/ 09 июня 2011

В C # вы можете сделать это, используя ServiceController.WaitForStatus .Вы можете сделать это таким образом (одна строка кода) и обернуть C # в ваш код C ++.

В противном случае вы, скорее всего, будете возиться с WMI ( класс Win32_Service ) или журналом событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...