4
2

More than 1 year has passed since last update.

QResとSetDPIを用いて解像度と拡大率を変更するボタンを作る

Posted at

目的

4Kモニタを使っているが、APEXをプレイするには4Kだとマシンパワー不足なので毎回windowsの設定画面からFHDに切り替えている。これが若干ダルいのでもっと簡単に切り替えられるボタンを作る。

用意するもの

  • QRes
  • SetDPI

QRes

QResはコマンドラインから解像度を変更することができるようになるオープンソースソフトウェア。

参考: Windows 10のデスクトップ解像度をコマンドラインで変更するには

上記の参考サイトを基に、64bitOSで動くバイナリを以下のリンクから入手し、任意のディレクトリにダウンロード、

3 Ways To Change Screen Resolution In Windows 10


zipを展開すると以下の内容物のディレクトリができる。

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】バッチファイルをタスクバーにピン留めする方法

ショートカットの作成

ショートカットを作る
image.png

このままではタスクバーに表示できないため、プロパティを開き、パスの先頭に「cmd.exe c/」と入力して適用。


この状態で起動したバッチファイルはタスクバーにピン留め可能となる。

アイコンの変更

このままではアイコンがコマンドプロンプトのものになってしまってディスプレイ切り替えボタンっぽくないので、アイコンを変更する。

しかしこのままだとコマンドプロンプトの画像しか現れないので、システムのアイコンパッケージを参照する必要がある。

システムのアイコンは C:\Windows\System32 にdllファイルの形でパッケージされている。
主に

  • imageres.dll
  • shell32.dll
  • DDORes.dll
  • setupapi.dll
  • wmploc.dll

がアイコンのパッケージである。僕はディスプレイのアイコンを使いたかったのでそれが含まれているsetupapi.dllを参照。

dllファイルを指定することでアイコンが選択可能になる。

完成

image.png

おわり

4Kディスプレイを使っているミドルスペックPCゲーマーの皆さんはよかったら参考にしてください。
便利だと思います。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2