How to get list of running applications using Powe

2020-02-11 18:42发布

I need to programmatically get a list of running applications as shown in the "Applications" tab inside the Windows Task Manager using PowerShell or VBScript.

All I could find so far is how to list processes using VBScript and WMI.

5条回答
▲ chillily
2楼-- · 2020-02-11 19:03

@Steven Murawski: I noticed that if I used mainwindowhandle I'd get some process that were running, of course, but not in the "Applications" tab. Like explorer and UltraMon, etc. You could condition off of mainwindowtitle instead, since those process I encountered didn't have window titles -- like so

gps | ? {$_.mainwindowtitle.length -ne 0} | select name, mainwindowtitle
查看更多
放荡不羁爱自由
3楼-- · 2020-02-11 19:22

stahler's answer converted to PowerShell:

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

$word.tasks | ? {$_.visible} | select name

$word.quit()

查看更多
女痞
4楼-- · 2020-02-11 19:23

This gets you close in PowerShell:

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

Or the shorter version:

gps | ? {$_.mainwindowhandle -ne 0} | select name, mainwindowtitle
查看更多
Lonely孤独者°
5楼-- · 2020-02-11 19:27

This should do the trick:

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

查看更多
女痞
6楼-- · 2020-02-11 19:29

from command line you are looking for:

tasklist /v the /v means verbose and will include list of "application running off each process

tasklist /v /fi "imagenaem eq POWERPNT.EXE" for example can be used to filter just application running under POWERPNT.EXE process.

查看更多
登录 后发表回答