マルチモニタでセカンダリをON/OFFする方法。

せっかく大画面テレビ(といっても37インチですが)があるのだから、PCの動画をテレビ側に映したい、というときに、いくつか方法があります。

ひとつはChromeCast。
ChromeCastに対応した再生アプリ(VLC Media PlayerとかPowerDVDとか)を使えば、無線LAN経由で動画をキャストすることができます。

もうひとつは物理的に繋いでしまうこと。
HDMIケーブル(もしくはテレビ側で対応していればDPケーブルなど)でPCとテレビを繋げ、セカンダリディスプレイとして認識させます。するとWindows側では画面の複製 / 拡張 / PC側のみ / テレビ側のみの4つの状態を選択することができるようになります。
ただしこのとき、動画を見ないのに常時セカンダリを接続したままにしておくと、困ることがあります。
  1. ディスプレイが拡張されていると、マウスがセカンダリ側に行ってしまうと見えなくなる。
  2. オーディオがPCに接続されたスピーカではなくテレビ側のスピーカから再生される。
  3. セカンダリが電源オフなのに、セカンダリ側で使用したアプリはそちら側で起動されていまう。
これを防ぐには、デスクトップで右クリック→「ディスプレイ設定」→「マルチディスプレイ」のところでいちいち変えてやらなければいけません。ひと手間ふた手間かかるのでけっこう面倒です。

実は %windir%\System32\DisplaySwitch.exe というコマンドがあり、これを使えば画面右側にディスプレイの選択ができるようなバーを出してくれます。

デスクトップなどにこのコマンドへのショートカットを置いておき、切り替えたいときに起動すれば簡単に切り替えできるようになります。

また、オプション引数を指定することでワンクリックで切り替えることもできます。

拡張の場合には "/extend" オプションを、PC側のみの場合には "/internal" オプションを指定してやります。
また、"/clone" ではPC側の複製をテレビ側にも表示し、"/external" ではPC側をオフしてテレビ側のみにします。
/extendしたときにテレビ側のオーディオデバイスを選択しておくと、/internal したときにはPC側、/extend したときにはテレビ側のオーディオが選択されるようになるようです。

この動作をコンテキストメニューに割り当てる記事がありました。
WindowsスマートチューニングのWin 7/8/8.1編: マルチディスプレイをコンテキストメニューから切り替えるです。

この記事の通りにレジストリファイルを作成し、レジストリに格納することでコンテキストメニュー(デスクトップでの右クリック)で呼び出すことができるようになります。
一点、記事中ではUNICODEで保存となっていますが、うちの環境ではシフトJISで保存しておかないと文字化けしました。

元記事が削除されてしまう場合も考慮して、こちらにコードを引用させてもらいます。以下のコードをテキストエディタなどにコピーして multidisplay.reg などとファイル名をつけて保存すればOKです。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\DisplayChange]
"ExtendedSubCommandsKey"="!DisplayChange"
"MUIVerb"="マルチディスプレイ(&D)"
"Position"="Bottom"
"Icon"="%SystemRoot%\\System32\\display.dll,-1"

[HKEY_CLASSES_ROOT\!DisplayChange\Shell\01]
"MUIVerb"="PC画面のみ"

[HKEY_CLASSES_ROOT\!DisplayChange\Shell\01\command]
@="DisplaySwitch.exe /internal"

[HKEY_CLASSES_ROOT\!DisplayChange\Shell\02]
"MUIVerb"="複製"

[HKEY_CLASSES_ROOT\!DisplayChange\Shell\02\command]
@="DisplaySwitch.exe /clone"

[HKEY_CLASSES_ROOT\!DisplayChange\Shell\03]
"MUIVerb"="拡張"

[HKEY_CLASSES_ROOT\!DisplayChange\Shell\03\command]
@="DisplaySwitch.exe /extend"

[HKEY_CLASSES_ROOT\!DisplayChange\Shell\04]
"MUIVerb"="セカンドスクリーンのみ"

[HKEY_CLASSES_ROOT\!DisplayChange\Shell\04\command]
@="DisplaySwitch.exe /external"

0 件のコメント:

コメントを投稿

WesternDigitalこわれた。

たぶん寿命を過ぎてるのでクレームとまではいかないのだけれど。 WesternDigitalのWD60EFRXが壊れました。モノは2014年11月に購入。ところが3年で壊れ、RMAにより2017年11月に交換したものです。BlackBlazeでも故障率がそれなりに高かったので、そう...