我需要以编程方式获取正在运行的应用程序列表,如Windows任务管理器中使用PowerShell或VBScript的"应用程序"选项卡中所示.
到目前为止我所能找到的是如何使用VBScript和WMI列出进程.
这将使您在PowerShell中关闭:
get-process | where-object {$_.mainwindowhandle -ne 0} | select-object name, mainwindowtitle
或者更短的版本:
gps | ? {$_.mainwindowhandle -ne 0} | select name, mainwindowtitle
@Steven Murawski:我注意到如果我使用mainwindowhandle,我会得到一些正在运行的进程,当然,但不是在"Applications"选项卡中.就像探险家和UltraMon等一样,你可以改为主视窗口,因为我遇到的那些过程没有窗口标题 - 就像这样
gps | ? {$_.mainwindowtitle.length -ne 0} | select name, mainwindowtitle
这应该做的伎俩:
Set Word = CreateObject("Word.Application") Set Tasks = Word.Tasks For Each Task in Tasks If Task.Visible Then Wscript.Echo Task.Name Next Word.Quit
http://msdn.microsoft.com/en-us/library/bb212832.aspx
从命令行,您正在寻找:
tasklist /v
该/v
装置详细和将包括流失每个进程应用的"列表
tasklist /v /fi "imagenaem eq POWERPNT.EXE"
例如,可用于过滤仅在POWERPNT.EXE进程下运行的应用程序.