要检查进程是否正在运行,可以使用“CreateToolHelp32SnapShot”Windows API 函数并枚举正在运行的进程。答案问题中给出了示例 C/C++ 代码:使用C++检查Windows上某个特定进程是否正在运行 https://stackoverflow.com/questions/13179410/check-whether-one-specific-process-is-running-on-windows-with-c
我的问题是,如果您知道自己正在寻找一个答案,是否有一种更快的方法来找到答案,而不必依次检查每个过程specific过程?我们需要定期检查我们的远程支持工具 TeamViewer.exe 是否正在运行。请注意,TeamViewer 是由第三方编写的,我们无法控制它,也不了解 EXE 的内部结构。
EDIT:
TeamViewer 提供了一些有关其流程内部结构的信息,可用于在这种情况下加快速度(请参阅已接受的答案)。答案还展示了如何加快任何进程的检查速度(通过保存进程 ID)。
您必须采取的第一步涉及枚举进程。使用 toolhelp 或EnumProcesses
。如果找到进程,请将 PID 传递给OpenProcess
获取进程句柄。然后等待进程收到信号。这样就无需在初始枚举之外进行轮询。
如果您的初始枚举未能找到该进程,您将不得不重复枚举。使用 toolhelp 或EnumProcesses
事实证明效率更高。也许会限制轮询。您还可以选择使用 WMI 来接收新进程创建的通知,这样就完全避免了轮询的需要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)