我目前正在参与一个需要计时某些进程运行时间的项目。我试图找出最有效的方法来扫描进程列表,然后检查进程列表可执行文件名是否与支持的程序列表匹配。
问题可以分为两部分:
1)获取进程列表中进程可执行文件名的最有效方法
2)将此列表与另一个列表进行比较的最有效方法
对于(1),其他开发人员正在尝试使用tasklist命令并解析可执行文件名。我还发现C#有一个System.Diagnostic进程列表,可以自动完成此操作。我们仍在努力决定Java和C#之间的选择,所以我可能会倾向于使用语言中立的解决方案,但这可能是C#的决定性因素。
对于(2),支持的进程列表平均可能很小(1-10个进程名称)。我们可以只运行每个进程通过列表,但我们认为这可能对老年PC过于繁琐,所以我们考虑使用一个字母表平衡的AVL树,在应用程序启动时包含初始进程列表,并首先检查所有内容是否与该树匹配,如果不在树中,则检查我们支持的进程名称列表。
非常感谢任何建议。
编辑:显然,您可以按进程可执行文件名筛选tasklist,因此我们可以为支持的进程列表中的每个进程执行此操作。
编辑2:是否有适用于Windows XP Home的tasklist等效工具?
问题可以分为两部分:
1)获取进程列表中进程可执行文件名的最有效方法
2)将此列表与另一个列表进行比较的最有效方法
对于(1),其他开发人员正在尝试使用tasklist命令并解析可执行文件名。我还发现C#有一个System.Diagnostic进程列表,可以自动完成此操作。我们仍在努力决定Java和C#之间的选择,所以我可能会倾向于使用语言中立的解决方案,但这可能是C#的决定性因素。
对于(2),支持的进程列表平均可能很小(1-10个进程名称)。我们可以只运行每个进程通过列表,但我们认为这可能对老年PC过于繁琐,所以我们考虑使用一个字母表平衡的AVL树,在应用程序启动时包含初始进程列表,并首先检查所有内容是否与该树匹配,如果不在树中,则检查我们支持的进程名称列表。
非常感谢任何建议。
编辑:显然,您可以按进程可执行文件名筛选tasklist,因此我们可以为支持的进程列表中的每个进程执行此操作。
编辑2:是否有适用于Windows XP Home的tasklist等效工具?