Reputation: 183
How does one get a list of running applications as shown in the "Applications" tab inside the Windows Task Manager using PowerShell or VBScript?
Upvotes: 18
Views: 53512
Reputation: 71
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.
Upvotes: 7
Reputation: 94
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
Upvotes: 6
Reputation: 496
@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
Upvotes: 9
Reputation: 203
stahler's answer converted to PowerShell:
$word = new-object -com 'word.application'
$word.tasks | ? {$_.visible} | select name
$word.quit()
Upvotes: 1
Reputation: 11260
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
Upvotes: 24