【PowerShell】特定のアプリケーションをアクティブにする

CODE,PowerShell

PowerShellで特定のブラウザやアプリケーションをアクティブにします。

①特定のURLを表示しているIEブラウザをアクティブにする

変数 $url で設定したURLを表示しているブラウザをアクティブにします。

Add-Type -AssemblyName Microsoft.VisualBasic

# 対象URLの設定
$url = "https://magenta-magenta.com"

# 対象のURLを起動しているブラウザを特定する
$shell = New-Object -ComObject Shell.Application
$ieList = @($shell.Windows() | Where-Object { $_.Name  -match "Internet Explorer" })
$ie = @($ieList | Where-Object { $_.LocationURL -match $url })[-1]

# 特定したブラウザをアクティブにする
$window_process = Get-Process -Name "iexplore" | Where-Object { $_.MainWindowHandle -eq $ie.HWND }
[Microsoft.VisualBasic.Interaction]::AppActivate($window_process.ID)

②特定のアプリケーションのプロセスを指定してアクティブにする

メモ帳(notepad)のプロセスを指定してアクティブにします。

add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms
start-sleep -Milliseconds 500

# 起動しているプロセスからメモ帳のプロセスをマッチングする
$ps = Get-Process | Where-Object {$_.Name -match "notepad"}
foreach($psName in $ps){
  [Microsoft.VisualBasic.Interaction]::AppActivate($psName.ID)
}

参考書

PowerShellの活用の幅が広がる一冊。