【发布时间】:2011-05-02 13:48:48
【问题描述】:
我正在创建一个基本上扫描系统以查看特定进程是否正在运行的 Windows 程序。我只有进程名称 (AcroRd32.exe),没有别的。
根据我所读到的最简单的方法,使用 CreateToolhelp32Snapshot 创建所有进程的快照,然后遍历每个进程以查找进程名称。
我的应用程序以高性能为中心。那么有没有更好更有效的方法来做到这一点。 该应用程序每隔几秒钟收集一次快照。迭代快照中的 100 个进程似乎效率不高。是否有直接的 API 可以通过进程名称找到进程(并通过名称检索进程句柄或 id)?
我进行了广泛的搜索,但运气不佳。以前有人试过吗?
【问题讨论】:
-
如果有多个进程同名怎么办?
-
我计划跟踪进程 ID 以区分具有相同名称的不同进程
-
是的,那么您可能必须自己遍历所有进程并找出具有相同名称的句柄。
-
快照实际上是一个列表还是你可以二进制搜索它?