目的
4Kモニタを使っているが、APEXをプレイするには4Kだとマシンパワー不足なので毎回windowsの設定画面からFHDに切り替えている。これが若干ダルいのでもっと簡単に切り替えられるボタンを作る。
用意するもの
- QRes
- SetDPI
QRes
QResはコマンドラインから解像度を変更することができるようになるオープンソースソフトウェア。
参考: Windows 10のデスクトップ解像度をコマンドラインで変更するには
上記の参考サイトを基に、64bitOSで動くバイナリを以下のリンクから入手し、任意のディレクトリにダウンロード、
3 Ways To Change Screen Resolution In Windows 10
SetDPI
SetDPIは画面の拡大率を変更することができるコンソールアプリケーション。
参考【Windows】ワンクリックでできる! コマンドでディスプレイの表示倍率(スケール)を変更する方法
上記の参考サイトを基に、以下のリンクから最新版を入手し、任意のディレクトリにダウンロード。
https://github.com/imniko/SetDPI/releases

zipを展開すると以下の内容物のディレクトリができる
バッチファイルを組む
実現する機能
FHDの際は拡大率100%(setDPIの操作はなし)
4Kの際は拡大率150%に指定する。
書く内容
まず、QResのディレクトリに移動する。
@echo off
cd C:\Users\~~~~\Documents\QRes
解像度を指定する数字を input で定義し、案内を表示する。ユーザに解像度を指定する数字を入力させる。
set input=
echo Please select display resolution 1:1920*1080 2: 3840*2160
set /P input=">>"
echo %input% was selected.
if文で入力された数字をチェックし、1の場合はFHDに、2の場合は4KになるようにQResを実行する。(Rはリフレッシュレート)
if %input%==1 QRes.exe /X 1920 /Y 1080 /R 60
if %input%==2 QRes.exe /X 3840 /Y 2160 /R 60
SetDPIの操作を記述する。
APP_PATHはSetDPIを展開したディレクトリとアプリケーションを指定、DIPSLAY_IDはディスプレイの番号(OSの識別から確認できる)、SCALE=VALUEで拡大率を指定。
set APP_PATH=C:\Users\~~~~\Documents\SetDPI\SetDPI.exe
set DISPLAY_ID=1
set SCALE_VALUE=150
if文で2(4Kにする時)が選択されたらスケール変更を実行するように記述。
if %input%==2 "%APP_PATH%" %DISPLAY_ID% %SCALE_VALUE%
完成図
まとめで以下のようにして完成
@echo off
cd C:\Users\~~~~\Documents\QRes
set input=
echo Please select display resolution 1:1920*1080 2: 3840*2160
set /P input=">>"
echo %input% was selected.
if %input%==1 QRes.exe /X 1920 /Y 1080 /R 60
if %input%==2 QRes.exe /X 3840 /Y 2160 /R 60
set APP_PATH=C:\Users\~~~~\Documents\SetDPI\SetDPI.exe
set DISPLAY_ID=1
set SCALE_VALUE=150
if %input%==2 "%APP_PATH%" %DISPLAY_ID% %SCALE_VALUE%
ボタン一つで起動できるようにする
バッチファイルはそのままではタスクバーに表示することができず、素早く起動できない。
タスクバーに表示できるようにする。
参考:【Windows10】バッチファイルをタスクバーにピン留めする方法
ショートカットの作成
このままではタスクバーに表示できないため、プロパティを開き、パスの先頭に「cmd.exe c/」と入力して適用。
この状態で起動したバッチファイルはタスクバーにピン留め可能となる。
アイコンの変更
このままではアイコンがコマンドプロンプトのものになってしまってディスプレイ切り替えボタンっぽくないので、アイコンを変更する。
しかしこのままだとコマンドプロンプトの画像しか現れないので、システムのアイコンパッケージを参照する必要がある。
システムのアイコンは C:\Windows\System32 にdllファイルの形でパッケージされている。
主に
- imageres.dll
- shell32.dll
- DDORes.dll
- setupapi.dll
- wmploc.dll
がアイコンのパッケージである。僕はディスプレイのアイコンを使いたかったのでそれが含まれているsetupapi.dllを参照。
dllファイルを指定することでアイコンが選択可能になる。
完成
おわり
4Kディスプレイを使っているミドルスペックPCゲーマーの皆さんはよかったら参考にしてください。
便利だと思います。