2011-09-23 40 views
4

由于Win32_Service类没有相应的WMI事件提供程序,因此必须使用WITHIN关键字来表示WMI轮询机制应与轮询间隔一起使用,并使用它来监视是否有任何服务停止将会很昂贵(CPU,参考资料)。直接检查任何服务是否已停止的任何替代方法?

除了使用ProcessStopTrace类,

(1)中的任何迹象在注册表中的 “停止服务”? (2)其他任何直接检查服务是否已停止的方式?

(3)Windows中有Notify例程,它们在这里适用吗?

真诚

回答

3

可以使用ServiceController类,其中包括一个静态方法来返回所有服务以及获得个人服务细节的能力。

我不知道任何内置的机制会触发状态变化的事件。

+0

即使您使用的是Win32 API,也必须进行轮询以确定服务何时停止。即使.NET类在服务停止时触发一个事件,无论如何也会在后台进行轮询。 –

相关问题