1

我正在编写一个需要检测特定 Windows 进程终止的 Windows 服务(C++)。

我考虑了两种不同的方法来检测终止:

  1. 如此处所述使用WMI
  2. WaitForSingleObject(hHandle, INFINITE)在进程的句柄上使用 winapi函数。

明显的区别是 WMI 使用了一个CALLBACK函数。

这两种方法之间的其他主要区别、优点和缺点是什么?

谢谢!

4

1 回答 1

0

我之前写过一个进程监控服务,使用WMI来监控进程。它允许您指定要监视的进程的“where”子句,并且正如您所提到的,当发生某些事情时调用您。

这样做的好处是您不必有一个线程块等待相关进程退出,而是可以只运行 WMI 查询并在某些事情终止时等待回调。缺点是 WMI API 比 Win32 API 更冗长。特别是,您必须在 WMI 中将查询构建为字符串。

于 2014-01-13T17:20:14.380 回答