我在C ++中使用服务控制器来管理Windows服务。
我可以使用StartService( )
和ControlService( )
函数来启动和停止服务。
但是,是否存在等待服务实际启动和停止的标准方法?
我显然可以循环调用QueryServiceStatusEx( )
并等待状态分别为Running
或Stopped
。
是否有更简洁的方法来实现同样的目标?
感谢。
答案 0 :(得分:1)
Afaik Service启动和停止创建Windows事件日志事件。也许您可以为这些安装处理程序并等待应用程序中的事件。如果您的应用程序也是服务,请将其标记为依赖于第三方服务,那么您不必等待它。
答案 1 :(得分:0)
在C#中,您可以使用ServiceController.WaitForStatus执行此操作。你可以这样做(一行代码)并在你的C ++代码中包装C#。
否则,您可能会对WMI(Win32_Service class)或事件日志充满信心。