有没有直接检查服务是否停止的替代方法?

4
因为Win32_Service类没有相应的WMI事件提供程序,所以必须使用WITHIN关键字来表示应使用WMI轮询机制,并使用轮询间隔来监视服务是否已停止,这可能会耗费大量资源(CPU,资源)。
除了使用ProcessStopTrace类之外,
(1)在注册表中有“服务已停止”的任何迹象吗?
(2)还有其他直接检查服务是否已停止的方法吗?
(3)Windows中有通知例程,它们是否适用于此处?
此致敬礼
1个回答

3
你可以使用包含静态方法返回所有服务以及获取单个服务详细信息的ServiceController类。
我不知道是否有内置机制可以在状态更改时触发事件。

即使您正在使用Win32 API,您仍然需要轮询以确定服务何时停止。即使.NET类在服务停止时触发事件,在幕后它也会进行轮询。 - Ian Goldby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接