0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アプリケーションを起動したときに自動でモニターの解像度を変更するbatファイル

Last updated at Posted at 2025-11-03

初めに

私は自宅でのメインモニターとして、34インチのウルトラワイドモニターを使用しています。しかし、解像度が3440x1440(UWQHD)と4Kの次に高いため、ゲームによっては、この解像度で遊ぶにはグラフィック設定を落とす必要がでてくることがあります。最近だとモンハンワイルズとかです。あと横に長すぎて普通にプレイしづらいこともあります。

そのため、ゲームをするたびに、Windowsの設定からモニターの解像度を落としてから起動させ, 終わったら戻すという行為をしており、かなり面倒くさいです。

今回は、これらの作業をまとめてやってくれるbatファイルを作成したので紹介します。

準備

batファイルでモニターの解像度を変更させるには、Windowsの標準機能だけではできないので、「Display Changer II(以下, DC2)」というオープンソフトを使用します。

ダウンロードは下記から

次に以下のコードをテキストファイルに記述し、拡張子をbatに変更してください。

@echo off
setlocal EnableExtensions EnableDelayedExpansion

rem =========================================================
rem AutoRes Launcher
rem =========================================================

rem --- Check dc2.exe existence ---
if not exist "%~dp0dc2.exe" (
  echo [ERROR] dc2.exe not found in %~dp0
  pause
  exit /b 1
)

rem --- Check config files existence ---
if not exist "%~dp0default.xml" (
  echo [ERROR] default.xml not found. Please create it first with:
  echo dc2.exe -create="default.xml"
  pause
  exit /b 1
)
if not exist "%~dp02560x1440.xml" (
  echo [ERROR] 2560x1440.xml not found. Please create it first with:
  echo dc2.exe -create="2560x1440.xml"
  pause
  exit /b 1
)

rem --- Game configuration ---
set gameName1=Monster Hunter Wilds
set gamePath1=F:\SteamLibrary\steamapps\common\MonsterHunterWilds\MonsterHunterWilds.exe
set gameProc1=MonsterHunterWilds.exe

set gameName2=Game2
set gamePath2=C:\Games\Game2\Game2.exe
set gameProc2=Game2.exe

set gameName3=Game3
set gamePath3=C:\Games\Game3\Game3.exe
set gameProc3=Game3.exe

cls
echo =============================
echo Select a game to launch:
for /L %%i in (1,1,50) do call :Show %%i
echo =============================
set /p choice=Enter number: 

set "idx=%choice%"

if not defined gamePath%idx% (
  echo Invalid selection.
  pause
  exit /b 1
)

call set "gamePath=%%gamePath%idx%%%"
call set "gameProc=%%gameProc%idx%%%"
call set "gameName=%%gameName%idx%%%"

echo.
echo =======================================
echo Changing resolution to 2560x1440 / 120Hz
echo =======================================
"%~dp0dc2.exe" -configure="%~dp0\2560x1440.xml"
timeout /t 2 >nul

echo Launching: !gameName!
start "" "!gamePath!"

echo Waiting for process: !gameProc!
:wait
timeout /t 5 >nul
tasklist | find /i "!gameProc!" >nul
if not errorlevel 1 goto wait

echo.
echo =======================================
echo Restoring default resolution...
echo =======================================
"%~dp0dc2.exe" -configure="%~dp0\default.xml"

echo Done.
pause
exit /b

:Show
setlocal
set idx=%1
call set name=%%gameName%idx%%%
if defined name (
  echo [!idx!] !name!
)
endlocal
exit /b

DC2とbatファイルを用意したら適当にフォルダを作成し、2つを同じフォルダに配置してください。
1.jpg

batファイルの設定

適用するゲームのパスなどを指定する必要があります。
記載しているコードには例として、私の環境でモンスターハンターワイルズを設定してありますので、これを参考に、自分用に書き換えてください。
2.jpg

DC2用XMLファイルの作成

① 現在の設定を保存

現在の解像度設定を保存します。コマンドプロンプトでDC2とbatファイルがあるフォルダに移動して、以下のコマンドを実行してください。

C:\Users\hoge\Desktop\AutoResChange>dc2.exe -create="default.xml"
C:\Users\hoge\Desktop\AutoResChange>

② ゲーム用の解像度を設定して保存

Windowsのモニター設定を手動で変更先の解像度に変更してください(変更後がフルHDなら1920x1080です)。
変更後以下のコマンドを実行してください。

C:\Users\hoge\Desktop\AutoResChange>dc2.exe -create="2560x1440.xml"
C:\Users\hoge\Desktop\AutoResChange>

すると以下のように2つのXMLファイルが追加されます。
6.jpg

起動

一応、初回のみdc2.exeを一度起動してください。
batファイルを起動するとどのゲームを起動するか聞かれます(管理者権限で起動してください)。
4.jpg

ゲームを選択するとWindows側の解像度が自動的に変更され、ゲームが起動します。
7.jpg

そしてゲームを終了すると自動で元の解像度に変更されます。
5.jpg

8.jpg

おわりに

そもそも、この世にゲーミングPCのメインモニターをウルトラワイドにしてる人が、どれだけいるんだって話ですが。。。
まあ現在のレースゲーマーはウルトラワイドかVRで、3画面はすたれつつあるので少しは需要あるかと。

それでは。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?