等待服务启动/停止
Wait for Service to Start/Stop
我正在使用C++中的服务控制器来管理windows服务。
我可以使用StartService( )
和ControlService( )
功能来启动和停止服务。
然而,是否有标准的方法来等待服务真正启动和停止?
很明显,我可以循环调用QueryServiceStatusEx( )
,并等待状态分别为Running
或Stopped
。
有没有一种更整洁的方式来实现同样的目标?
谢谢。
Afaik服务启动和停止创建windows事件日志事件。也许您可以为这些事件安装一个处理程序,然后等待应用程序中的事件。如果您的应用程序也是一项服务,请将其标记为依赖于第三方服务,那么您不必等待它。
在C#中,您可以使用ServiceController.WaitForStatus来完成此操作。您可以通过这种方式(一行代码)完成此操作,并将C#封装在C++代码中。
否则,您可能会使用WMI(Win32_Service类)或事件日志。
相关文章:
- 如何使用 ctypes 停止和重新启动从 Python 运行的C++代码
- 程序在使用 system() 启动另一个可执行文件时停止
- Qt/C++ 系统单元启动/停止时的信号
- 如何使重新启动此循环,当用户输入 1 时,并在 0 时停止
- 如何在无限循环中启动和停止(切换)多个线程
- 高速解决方案以循环浏览不同变量的所有组合,并使用启动步骤停止方案(C )
- 导致ESP32随机停止并触发看门狗计时器重新启动的串行数据包
- Eclipse C++ 调试器不会在断点处停止,而是在调试启动后立即终止
- 无法弄清楚如何为用户提供启动,停止和重新启动程序的所有选项?
- C++使用Qt库的应用程序在屏幕保护程序启动时停止工作
- 当屏幕保护程序在Linux下启动或停止时,是否可以通知通知
- 通过C 代码在Linux上启动/停止守护程序
- 每次启动/停止时,QTimer都会变快
- 停止,然后启动线程
- 启动-停止守护进程启动的C程序无法捕获信号
- 在C++/MFC中停止和启动DirectX声音合成器时弹出/单击
- 在 C++ 中启动和停止线程中的循环
- QT:无法在启动/停止按钮中终止 Qprocess
- 启动/停止排序算法的C++矢量内存错误
- 停止/启动后台线程中的窗口挂钩