在任务管理器的应用程序选项卡中获取正在运行的任务列表

Posted

技术标签:

【中文标题】在任务管理器的应用程序选项卡中获取正在运行的任务列表【英文标题】:Get a list of running tasks in application tab of task manager 【发布时间】:2017-02-21 12:32:29 【问题描述】:

有没有办法仅在 Windows 中获取所有正在运行的应用程序的列表。应用程序是指任务管理器的应用程序选项卡中显示的任务。 As shown here

只是一些背景信息,我的程序的一部分显示(有点像任务管理器)所有当前正在运行的应用程序。因此,本质上可以考虑从应用程序选项卡中导出任务列表的类似方法。

我知道使用 tasklist 来获取所有进程的列表,您可以对其应用过滤器,但我不确定哪种过滤器组合会提供所需的输出。

编辑 - 到目前为止,我已经设法应用过滤器并将过滤后的列表输出到所需位置。现在我被卡住了,因为我不知道什么是任务管理器中的应用程序,所以我不确定我需要应用哪种过滤器组合。

Tasklist 是一个 CMD 命令,所以我的目标是,如果可能的话,过滤掉不属于应用程序选项卡的任务,将列表导出为 CSV 文件并创建一段代码,读取 csv 并显示c++ 中的数据(用于第一个原型)。

【问题讨论】:

回答“有没有可能……?”通常是“是”(在极少数情况下是“否”)。恕我直言,如果您能展示您的尝试,解释它是如何不起作用的,并询问如何解决它,这个问题可能会得到很大改善 您已经尝试过什么,只需在 Google 中搜索“Windows 任务管理器代码”即可返回 10 次点击? 我已经编辑了原帖 还有@RichardCritten,如果我能在谷歌找到答案,我就不会问了吗? 【参考方案1】:

对于将来偶然发现此问题的任何人,我找到了使用 VBS 的解决方案。

Set Word = CreateObject("Word.Application")
Dim fso
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Set f = fso.CreateTextFile("C:\Users\........\Documents\output.csv", 2)
Set Tasks = Word.Tasks
For Each Task in Tasks
   If Task.Visible Then f.Writeline Task.Name
Next
Word.Quit

这会检测所有当前的“应用程序”并将列表输出到 csv 文件。

【讨论】:

以上是关于在任务管理器的应用程序选项卡中获取正在运行的任务列表的主要内容,如果未能解决你的问题,请参考以下文章

使用CMD打开word文档到另一台电脑,它只停留在任务管理器的进程选项卡中,不显示在另一台电脑的屏幕上

win7任务管理器 内存相关项目的解释

是否可以在 TaskManager 应用程序选项卡中隐藏 winform?

如何从 Windows 任务管理器(应用程序选项卡)获取应用程序 + 从 Delphi 获取它们在 HDD 上的位置

在 VB.NET 的任务管理器应用程序选项卡中隐藏表单

如何获取正在运行的进程的进程ID,如任务管理器中所示