CLIから画面の解像度を変更する
create: 2019-12-12
Windows10 PowerShell

Happy DARS Day!
12 月 12 日はダースの日。

ゲームのフルスクリーン表示が安定しないとき、Windows から画面解像度を変更して、ウィンドウ・ボーダーレスモードで起動したいことがあります。
ですが、Windows の解像度変更をマウスでポチポチやるのもちょっと面倒。。。

なので、PowerShellで変更できるようにしちゃいましょう。

作業の流れ

  • 解像度変更関数を用意する
  • PowerShell 起動時に関数を読み込む
  • 解像度を決め打ちした関数を登録する
  • 関数をダブルクリックで実行できるようにする

解像度変更関数を用意する

これはもう、実績のある関数を丸パクリします。
Microsoft の Script Center > リポジトリ > デスクトップ管理 > Set-ScreenResolution からコピーします。

このファイルを set-screen-resolution.ps1として保存しておきます(任意の名前で OK)。
私の環境ではどのマシンでも同期できるように、OneDrive に保存しました。

PowerShell 起動時に関数を読み込む

PowerShellは起動時に$PROFILEの内容を読むので、この関数が自動で呼ばれるよう登録します。

まずはエディタを開きます。

start $profile

これでテキストエディタが起動すると思うので、関数を読み込むように追記します。
パスは先程保存したものに合わせてください。

# 解像度変更関数のインポート
import-module ~\OneDrive\config\win\powershell\set-screen-resolution.ps1

解像度を決め打ちした関数を登録する

あとは各環境に合わせて、変更したい解像度といつも使う解像度、それぞれに名前をつけて関数化すれば良いです。
4k2kとつけたかったところですが、関数名は数字で始まることができません。Resolution(解像度)の意味でrを先頭に付けました。

# 4K解像度(仕事用)
function r4k(){ Set-ScreenResolution -Width 4096 -Height 2160 }

# 2K解像度(ゲーム用)
function r2k(){ Set-ScreenResolution -Width 1920 -Height 1080 }

関数をダブルクリックで実行できるようにする

PowerShellps1ファイルは、ダブルクリックで実行できないようになっています。
なので、ダブルクリックで起動できる.bat(バッチ)ファイルを作成して、その中からPowerShellの関数をコールします。

4k.batを作成し、PowerShellから関数を呼び出すように記述します。

powershell r4k

同様に、2k.batも作成します。

powershell r2k

これで.batファイルをダブルクリックするだけで解像度を変更できますね!