web-dev-qa-db-ja.com

PowerShellまたはVBScriptを使用して実行中のアプリケーションのリストを取得する方法

PowerShellまたはVBScriptを使用して、Windowsタスクマネージャー内の[アプリケーション]タブに表示されているように、実行中のアプリケーションのリストをプログラムで取得する必要があります。

これまでに見つけたのは、VBScriptとWMIを使用してプロセスを一覧表示する方法だけです。

15
mal99

これでうまくいくはずです:

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

5
stahler

これにより、PowerShellに近づくことができます。

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

または短いバージョン:

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

@Steven Murawski:mainwindowhandleを使用すると、もちろん実行されているプロセスがいくつか表示されることに気付きましたが、[アプリケーション]タブには表示されません。 ExplorerやUltraMonなどのように。私が遭遇したプロセスにはウィンドウタイトルがなかったので、代わりにmainwindowtitleを条件付けすることができます。

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

あなたが探しているコマンドラインから:

tasklist /v/vは冗長を意味し、「各プロセスで実行されているアプリケーション」のリストが含まれます

tasklist /v /fi "imagenaem eq POWERPNT.EXE"たとえば、POWERPNT.EXEプロセスで実行されているアプリケーションのみをフィルタリングするために使用できます。

5
Jack

スターラーの答えをPowerShellに変換:

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

$ Word.tasks | ? {$ _。visible} |名前を選択

$ Word.quit()

1
aleksandar