PowerShell または VBScript を使用して、Windows タスク マネージャー内の [アプリケーション] タブに表示されるように、実行中のアプリケーションのリストをプログラムで取得する必要があります。
これまでに見つけたのは、VBScript と WMI を使用してプロセスを一覧表示する方法だけです。
PowerShell または VBScript を使用して、Windows タスク マネージャー内の [アプリケーション] タブに表示されるように、実行中のアプリケーションのリストをプログラムで取得する必要があります。
これまでに見つけたのは、VBScript と WMI を使用してプロセスを一覧表示する方法だけです。
これにより、PowerShellに近づくことができます。
get-process | where-object {$_.mainwindowhandle -ne 0} | select-object name, mainwindowtitle
または短いバージョン:
gps | ? {$_.mainwindowhandle -ne 0} | select name, mainwindowtitle
@Steven Murawski: mainwindowhandle を使用すると、もちろん実行中のプロセスが表示されることに気付きましたが、[アプリケーション] タブには表示されません。Explorer や UltraMon などのように。私が遭遇したプロセスにはウィンドウ タイトルがなかったので、代わりに mainwindowtitle をオフにすることができます。
gps | ? {$_.mainwindowtitle.length -ne 0} | select name, mainwindowtitle
あなたが探しているコマンドラインから:
tasklist /v
は/v
冗長であり、「各プロセスで実行されているアプリケーション」のリストが含まれます
tasklist /v /fi "imagenaem eq POWERPNT.EXE"
たとえば、POWERPNT.EXEプロセスで実行されているアプリケーションのみをフィルタリングするために使用できます。
これでうまくいくはずです:
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
PowerShell に変換された stahler の回答:
$word = new-object -com 'word.application'
$word.tasks | ? {$_.visible} | 名前を選択
$word.quit()