扫描Windows进程列表最有效的方法?

扫描Windows进程列表最有效的方法?,第1张

概述扫描Windows进程列表最有效的方法

所以我目前正在做一个项目,需要时间,当某些进程正在运行。 我试图找出最有效的方法来扫描进程列表,然后检查进程列表的可执行文件名称与支持的程序列表。

问题本质上是两个部分:

1)从进程列表中获取进程可执行文件名的最有效的方法

2)最有效的方法来比较这个列表与另一个列表

如何在windows命令行中从taskList的输出中提取特定的字段

在windows批处理中查找打开的进程

奇怪的batch file编程错误:无效的参数/选项: – 'eq'

任务列表不会列出64个系统中的所有模块

如何确定一个正在运行的进程,因为在windows *** 作系统上,它的PID是在python上?

对于(1),其他开发人员之一正在使用taskList命令并parsing出可执行文件名称。 我也发现,C#有一个System.Diagnostic进程列表,将自动执行此 *** 作。 我们仍然试图在Java和C#之间做出决定,所以我可能会倾向于语言中立的解决scheme,但这可能是C#的一个决定性因素。

对于(2),支持的进程列表可能平均很小(1-10个进程名称)。 我们可以通过列表来运行每个进程,但是我们认为这对于更旧的PC来说可能太多了,所以我们在应用程序启动时使用包含初始进程列表的字母平衡的AVL树,并检查所有内容然后再检查我们支持的进程名称列表,如果它不在树中。

任何build议,非常感谢。

编辑:显然你可以过滤任务列表的进程可执行文件的名称,所以我们可以只为被支持的进程列表上的每个进程。

编辑2:是否有一个相当于windows XP Home的任务列表?

任务列表显示所有窗口

查看进程树 – tList / taskList

如果尚未启动,则使用Bat文件启动Java应用程序

windows批处理命令来确定进程的工作目录

Inno安装Pascal脚本来search正在运行的进程

如果你使用taskList,只需运行一次命令并取回所有结果,而不是为每个可执行文件名运行,实际上可能会更快。 执行一个进程有一些开销,并得到输出。 (当你得到结果时,你必须在代码中循环遍历它们,但是这可能会更快,通常不会有超过100个进程同时运行,所以不会太糟糕。应该写一个测试,并检查是否是真的。

在C#中,Process.GetProcesses()是最好的方法。

在Java中,没有真正的等同的类/方法。 获取进程列表非常适合 *** 作系统,因此Java设计人员必须决定不将这个功能集成/抽象到基类java类中。 您可能必须使用Runtime.getRuntime()。exec(“taskList.exe”)来获得windows上的结果,或者在Unix / linux上使用exec(“ps”)。

希望我正确理解你的问题。 你只是试图比较进程列表与在windows上运行的活动进程? C#

static voID Main(string[] args) { // Approved processes. List<string> approvedProcesses = new List<string>(); approvedProcesses.Add("Chrome"); approvedProcesses.Add("svchost"); // liNQ query for processes that match your approved processes. var processes = from p in System.Diagnostics.Process.GetProcesses() where approvedProcesses.Contains(p.Processname) select p; // Output matching processes to console. foreach (var process in processes) Console.Writeline(process.Processname + " " + process.ID.ToString()); Console.Readline(); }

你多久检查一次? 除非基本不变,否则我不会担心过早优化(SO上的一个共同主题)。

一个系统通常只有不到100个进程在运行,即使有几千个进程,优化你的数据结构和设计最高效的算法也不会节省你很多时间。

话虽如此,我建议您获取所有正在运行的进程,并将该列表与内存中的已批准列表进行比较。 任何瓶颈都可能与windows调用过程中的问题有关,因此一次而不是重复执行将会是有益的。

总结

以上是内存溢出为你收集整理的扫描Windows进程列表最有效的方法?全部内容,希望文章能够帮你解决扫描Windows进程列表最有效的方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存