【问题标题】:How to get list of running applications using PowerShell or VBScript如何使用 PowerShell 或 VBScript 获取正在运行的应用程序列表
【发布时间】:2010-09-16 12:19:18
【问题描述】:

我需要使用 PowerShell 或 VBScript 以编程方式获取正在运行的应用程序列表,如 Windows 任务管理器内的“应用程序”选项卡中所示。

到目前为止,我只能找到如何使用 VBScript 和 WMI 列出进程。

【问题讨论】:

    标签: powershell scripting vbscript


    【解决方案1】:

    这应该可以解决问题:

    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

    【讨论】:

      【解决方案2】:

      这会让你在 PowerShell 中关闭:

      get-process | where-object {$_.mainwindowhandle -ne 0} | select-object name, mainwindowtitle
      

      或更短的版本:

      gps | ? {$_.mainwindowhandle -ne 0} | select name, mainwindowtitle
      

      【讨论】:

        【解决方案3】:

        stahler 的答案转换为 PowerShell:

        $word = new-object -com 'word.application'

        $word.tasks | ? {$_. 可见} |选择名称

        $word.quit()

        【讨论】:

        • 啊——让我看起来很懒! (有罪)
        【解决方案4】:

        @Steven Murawski:我注意到,如果我使用 mainwindowhandle,我当然会得到一些正在运行的进程,但不在“应用程序”选项卡中。像 explorer 和 UltraMon 等。你可以改为关闭 mainwindowtitle,因为我遇到的那些进程没有窗口标题——就像这样

        gps | ? {$_.mainwindowtitle.length -ne 0} | select name, mainwindowtitle
        

        【讨论】:

          【解决方案5】:

          从你正在寻找的命令行:

          tasklist /v /v 表示冗长,将包括“应用程序运行每个进程”的列表

          tasklist /v /fi "imagenaem eq POWERPNT.EXE" 例如可用于过滤仅在 POWERPNT.EXE 进程下运行的应用程序。

          【讨论】:

          • tasklist /v 非常慢
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-06-28
          • 1970-01-01
          • 2013-08-24
          • 2019-07-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多