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

2021年3月4日CODE,PowerShell

Powershellで特定のブラウザやアプリケーションをアクティブにするコードです。

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

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

Add-Type -AssemblyName Microsoft.VisualBasic

# 対象URLの設定
$url = "https://d4c-lt.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)

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

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

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)
}

参考書