所以我目前正在做一个项目,需要时间,当某些进程正在运行。 我试图找出最有效的方法来扫描进程列表,然后检查进程列表的可执行文件名称与支持的程序列表。
问题本质上是两个部分:
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进程列表最有效的方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)