【完全版】DELLモニターの入力をbatで切り替える方法|マルチモニター環境対応[ControlMyMonitor + Stream Deck]

PC設定

DELL Display Manager(DDM)には、モニターの入力切替をホットキーで行える機能があります。
ただ、マルチモニター環境だと「切り替える対象モニターを指定できない」せいで、意図したモニターだけ切り替えるのが難しいことがあります。

私の環境でも、

  • メイン:ホットキーで切り替わる
  • サブ:ホットキーを押しても切り替わらない(メインが動作してしまう)

という状態になり、DDMだけでは解決できませんでした。

そこで本記事では、DDC/CIを直接操作できる ControlMyMonitor を使い、bat経由で“狙ったモニターだけ”入力を切り替える方法をまとめます。
Stream Deck に登録すれば、ワンボタン運用まで持っていけます。


結論:ControlMyMonitor+bat で「対象モニター指定」の入力切替ができます

結論を先に置きます。最終的には、次の トグル切替用の bat を作ります。
実行するたびに、指定したモニターの入力が HDMI1 ⇄ HDMI2 のように切り替わります。
これが動けば本記事のゴール達成です(以降はこの1行を自分の環境の値に置き換える手順になります)。

@echo off
"D:\Tool\controlmymonitor\ControlMyMonitor.exe" /SwitchValue "\\.\DISPLAY2\Monitor0" 60 4369 4370
  • 置き換えるのはこの3点だけです
    • ControlMyMonitor.exe のパス(例:D:\Tool\...
    • 対象モニター文字列(例:\\.\DISPLAY2\Monitor0
    • 入力値2つ(例:4369 4370 ※HDMI1/HDMI2。/GetValue で取得)
この1行の意味をもう少し詳しく(クリックで展開)
  • /SwitchValue
    指定した値の間で「切り替え」を行うコマンドです。
    ここでは 43694370 の間をトグルします(押すたびに行ったり来たり)。
  • \\.\DISPLAY2\Monitor0
    操作対象のモニター指定です。
    例では DISPLAY2 がサブモニターに該当しています(人によって DISPLAY1/2 は変わります)。
  • 60
    「Input Select」の VCPコードです(入力切替を指す項目)。
  • 4369 4370
    HDMI1/HDMI2 に対応する 入力の値です。
    ※この値は環境ごとに違うので、 /GetValue を使って自分の値を調べてから埋めます。あとで詳しく説明します。

DDMのホットキーで詰む原因は、マルチモニター環境で「このホットキーはどのモニターに送るのか」を指定できないことです。
一方で ControlMyMonitor は、対象モニターを明示してDDC/CIへ命令を送れます。

この方法でできることは次の通りです。

  • 特定のモニターだけ入力を切り替える(サブだけ、など)
  • bat で安定実行できる(手動でもStream Deckでも同じ)
  • 1ボタンのトグルにできる

以降は、次の順で進めます。

  • DISPLAY番号(対象モニター)を特定
  • 「Input Select(VCPコード60)」が Read/Write か確認
  • /GetValue で入力切替に必要な値を取得
  • /SwitchValue でトグルbat作成
  • Stream Deck に登録してワンボタン化

必要なもの

  • Windows PC(操作する側)
  • DDC/CI 対応モニター(DELLは対応していることが多い)
  • ControlMyMonitor(無料ツール)
  • bat を作れる最低限の知識(コピペでOK)
  • Stream Deck(任意。ワンボタン化したい場合)

ControlMyMonitor のダウンロード・配置

配布元(NirSoft)

以下の公式ページを開き、ページ内の 「Download ControlMyMonitor」 からZIPをダウンロードして解凍します。

https://www.nirsoft.net/utils/control_my_monitor.html

NirSoftのControlMyMonitor配布ページ(Download ControlMyMonitorボタンの位置)
ページ内の「Download ControlMyMonitor」からZIPをダウンロードします。

配置例

解凍したフォルダは、好きな場所に置いてOKです。
私は例として、次の場所に配置しました。

D:\Tool\controlmymonitor\ControlMyMonitor.exe

日本語化(任意)

公式ページの下部にある Language(翻訳) の一覧から、日本語の翻訳ファイル(ZIP)をダウンロードできます。
直接ダウンロードする場合は以下です。

https://www.nirsoft.net/utils/trans/controlmymonitor_japanese.zip

ZIPを解凍し、ControlMyMonitor_lng.iniControlMyMonitor.exe と同じフォルダへ置いてください。
次回起動時からUIが日本語になります。

ControlMyMonitorの日本語化ファイル(ControlMyMonitor_lng.ini)をexeと同じフォルダに配置する
ControlMyMonitor_lng.ini を exe と同じ場所へ(次回起動から日本語化)。

モニター番号(DISPLAY番号)を確認する

ControlMyMonitor を起動すると、画面上部の 「モニター:」 の欄に、PCに接続されているモニターが一覧表示されます。
複数モニターを接続している場合は、右側のプルダウンから対象モニターを選択できます。

この一覧に表示される文字列のうち、次の部分に注目してください。

  • \\.\DISPLAY1\Monitor0
  • \\.\DISPLAY2\Monitor0

この DISPLAY番号(DISPLAY1 / DISPLAY2 …) が、あとでコマンドを送るときの
「どのモニターに命令を送るか」の指定になります。

入力を切り替えたいモニター(例:サブモニター)を決めて、該当する文字列(DISPLAY番号)をメモしておいてください。

ControlMyMonitorの画面上部「モニター」プルダウンに、\\.\DISPLAY1\Monitor0 と \\.\DISPLAY2\Monitor0 が表示されている
赤枠の「\.\DISPLAYx\Monitor0」が、操作対象モニターの指定に使う文字列です。

補足:DISPLAY番号を確実に特定するコツ

どのモニターが DISPLAY1/2 なのか分からない場合は、Windows の「設定 → システム → ディスプレイ → 識別」で物理画面の 1/2 を確認したうえで、ControlMyMonitor 側で Brightness(VCP10)を ±1 だけ動かし、明るさが変わった方を対応づけると確実です(確認後は元の値に戻せばOK)。

「Input Select(VCPコード 60)」が操作可能か確認する

まず、VCPコード の列から 「Input Select」 を探してください。
多くのモニターでは VCPコードが「60」 になっていると思います。

次に、同じ行の 「Read-Write」列 を確認します。

  • ✅ Read/Write → 値を変更できるため、入力切替が可能です
  • ❌ Read Only → 値を変更できないため、入力切替はできません

もしRead Only だった方は、ここまで読んでいただいて大変心苦しいのですが、この方法では入力を切り替えられません(DDC/CI 側で書き込みが許可されていない状態です)。

Input Select(VCP 60)のRead/Write表示
Input Select が Read+Write なら入力切替できます。

HDMI1/HDMI2 の入力値を /GetValue で調べる(最重要)

ここで必要なのは、/SwitchValue の末尾に入れる 入力値(例:4369/4370) です。
この値はモニターや接続状況で変わることがあり、ControlMyMonitor画面の数値と一致しない場合があります。実際に現在の値として表示されている値は15となっていますが、今回の方法では使えませんでした。
そこで、batで /GetValue を実行し、実際に返ってきた値を採用します。

入力値を表示する bat を作る(get_input_value.bat)

@echo off
"D:\Tool\controlmymonitor\ControlMyMonitor.exe" /GetValue "\\.\DISPLAY2\Monitor0" 60
echo CurrentInputValue: %errorlevel%
pause
  • D:\Tool\... は ControlMyMonitor.exe の場所に合わせて変更
  • "\\.\DISPLAY2\Monitor0" は(前章で控えた)対象モニターに合わせて変更
  • 60 は Input Select の VCPコード(多くの機種で60)

HDMIごとの値をメモする

  • bat を実行 → 値が出ます(例:4369)
  • モニターのOSDで入力を HDMI2 に切り替える
  • もう一度 bat を実行 → 別の値が出ます(例:4370)

例(取得結果)

get_input_value.bat 実行結果:CurrentInputValue が 4369 と表示される例
例:HDMI1のときの取得値(4369)
入力切替後の実行結果:CurrentInputValue が 4370 と表示される例
例:HDMI2に切り替えた後の取得値(4370)

切り替え用のトグルbatを作る(完成形)

ここまでで確認した DISPLAY番号 と、/GetValue で取得した 入力値(例:4369/4370) を使って、入力切替用の bat を作ります。
この bat を実行するたびに、指定したモニターの入力が HDMI1 ⇄ HDMI2 と切り替わります。

例:toggle_hdmi1_hdmi2.bat

@echo off
"D:\Tool\controlmymonitor\ControlMyMonitor.exe" /SwitchValue "\\.\DISPLAY2\Monitor0" 60 4369 4370
  • D:\Tool\... は ControlMyMonitor.exe の場所に合わせて変更
  • "\\.\DISPLAY2\Monitor0" は(前章で控えた)対象モニターに合わせて変更
  • 60 は Input Select の VCPコード(多くの機種で60)
  • 4369 4370 は /GetValue で取得した HDMI1/HDMI2 の値に置き換え

付録:HDMI1/HDMI2 を「別ボタン」で切り替えたい場合(トグルではなく固定切替)

トグル切替は /SwitchValue でしたが、
「必ず HDMI1 にしたい」「必ず HDMI2 にしたい」など 入力を固定で指定したい場合は、/SetValue を使います

例:to_hdmi1.bat

@echo off
"D:\Tool\controlmymonitor\ControlMyMonitor.exe" /SetValue "\\.\DISPLAY2\Monitor0" 60 4369

例:to_hdmi2.bat

@echo off
"D:\Tool\controlmymonitor\ControlMyMonitor.exe" /SetValue "\\.\DISPLAY2\Monitor0" 60 4370

Stream Deck に登録(ワンボタン化)

作成したtoggle_hdmi1_hdmi2.bat を Stream Deck から起動すれば、ワンボタンで入力切替できます。
一番簡単なのは、標準アクションの 「システム」→「開く」 を使う方法です。

手順(「開く」で bat を実行)

  1. Stream Deck を開き、登録したいボタンを選びます
  2. 左のアクション一覧から 「システム」→「開く」 をドラッグしてボタンに置きます
  3. 「アプリケーション / ファイル」に、作成した .bat を指定します
     例:toggle_hdmi1_hdmi2.bat
  4. ボタン名を分かりやすく設定します(例:HDMI切替
  5. 実際に押して、狙ったモニターだけ切り替われば完成です
Stream Deck の「システム → 開く」で、toggle_hdmi1_hdmi2.bat を App/ファイルに指定している設定画面
「システム → 開く」に作成した toggle_hdmi1_hdmi2.bat を指定します(これでワンボタン切替)

Stream Deck は配信者向けの印象がありますが、PC操作をワンボタン化できるデバイスとして普段使いにも便利です。
参考までに商品リンクを置いておきます。

まとめ

  • DDMのホットキーは、マルチモニター環境だと「対象モニターを指定できない」ため、狙ったモニターだけの入力切替が難しいことがあります。
  • ControlMyMonitor なら \\.\DISPLAYx\Monitor0 を指定して、対象モニターだけに入力切替を実行できます。
  • HDMI1/HDMI2 の入力値は環境差があるため、/GetValue で実測して確定するのが安全です。
  • 実運用は /SwitchValue を使ったトグル用bat 1本にしておくのがラクです。
  • Stream Deck に bat を登録すれば、ワンボタンで入力切替できます。

最後に、完成形(トグル)を再度載せておきます。
DISPLAY番号入力値 に加えて、ControlMyMonitor.exe のパス(保存場所)もご自身の環境に合わせて置き換えてください。

@echo off
"D:\Tool\controlmymonitor\ControlMyMonitor.exe" /SwitchValue "\\.\DISPLAY2\Monitor0" 60 4369 4370
タイトルとURLをコピーしました