エクスプローラーが散らかってしまう? PowerShellで整理できました!
私がWindows環境で作業をしていると、いつの間にか色々なアプリケーションのウインドウが表示されています。 目的のウインドウに切り替えようとすると、ウインドウをかきわけるのに、何度もマウス操作しなければなりません。タスクバーの操作でも、何回かクリックが必要です。 特に、10個ぐらい開いてしまっているエクスプローラーの操作が大変です。
そこで、PowerShellを使って、これらのエクスプローラーをきれいに並べることで、扱いやすくしてみました。
ポイント
$shell=New-Object -ComObject Shell.Application; $shell.Windows()
でエクスプローラーの情報を取得できました。$shell.Windows() | foreach { $_.Left=0; $_.Top=0; $_.Width=800; $_.Height=600; }
でエクスプローラーの位置とサイズを変更できました。[System.Windows.Forms.Screen]::PrimaryScreen
や[System.Windows.Forms.Screen]::AllScreens
で画面サイズを取得できました。
結果イメージ
次のように、エクスプローラーを並べてみました。
スクリプト
画面の左上から右下へ、少しずらしながら重ねて並べる。 なお、重ねる順番は、表示しているパス順にしました。
$w = 800 $h = 600 $x = 0 $y = 0 $dx = 30 $dy = 30 $shell = New-Object -ComObject Shell.Application $shell.Windows() | where { $_.Name -eq "エクスプローラー" } | sort LocationURL | foreach { $_.Left=$x; $_.Top=$y; $_.Width=$w; $_.Height=$h; $x+=$dx; $y+=$dy; }
同様に、画面右下を基準に並べる。
Add-Type -AssemblyName System.Windows.Forms $sw = [System.Windows.Forms.Screen]::PrimaryScreen.WorkingArea.Width $sh = [System.Windows.Forms.Screen]::PrimaryScreen.WorkingArea.Height $w = 800 $h = 600 $x = $sw - $w $y = $sh - $h $dx = -30 $dy = -30 $shell = New-Object -ComObject Shell.Application $shell.Windows() | where { $_.Name -eq "エクスプローラー" } | sort LocationURL | foreach { $_.Left=$x; $_.Top=$y; $_.Width=$w; $_.Height=$h; $x+=$dx; $y+=$dy; }
動作確認環境
- Windows 10
- PowerShell 5.1