所以我目前正在研究一个需要在某些进程运行时计时的项目。我试图找出扫描进程列表的最有效方法,然后根据支持的程序列表检查进程列表可执行名称。
本质上,问题是两个部分:
1)从进程列表中获取进程可执行名称的最有效方法
2)将此列表与另一个列表进行比较的最有效方法
对于 (1),其他开发人员之一正在使用 tasklist 命令并解析可执行文件名称。我还发现 C# 有一个 System.Diagnostic 进程列表,它会自动执行此操作。我们仍在尝试在 Java 和 C# 之间做出决定,因此我可能会倾向于语言中立的解决方案,但这可能是 C# 的决定性因素。
对于 (2),支持的进程列表平均可能很小(1-10 个进程名称)。我们可以只通过列表运行每个进程,但我们认为这对于旧 PC 来说可能太多了,所以我们折腾了使用按字母顺序排列的 AVL 树的想法,该树包含应用程序启动时的初始进程列表,并检查所有内容首先对照它,然后检查我们支持的进程名称列表(如果它不在树中)。
非常感谢任何建议。
编辑:显然您可以按进程可执行名称过滤任务列表,因此我们可以为支持的进程列表中的每个进程执行此操作。
编辑 2:是否有适用于 Windows XP Home 的等效任务列表?