Windowsの起動時にディスプレイ表示がおかしいことがあります。
例えばグラフィックボードにつながっているディスプレイが真っ黒だったり、設定した解像度で表示されなかったり。
そういうときはデバイスドライバを無効・有効にしたり、デュアルディスプレイの時はいったんシングル画面設定にしてから拡張画面設定に戻すと直ったりします。
ただ、画面が正常にされていないのでこの操作をすることが難しいこともあります。
そういう場合はバッチファイルを作っておいてサービスとして登録し、Windows起動時に自動で実行するように設定しておくとよいでしょう。
そういうことで、
- マルチディスプレイを設定するコマンド
- デバイスの無効・有効を設定するコマンド
を記載します。
マルチディスプレイを設定するコマンド
DisplaySwitchを使用します。
::PC画面のみ
DisplaySwitch.exe /internal
::複製
DisplaySwitch.exe /clone
::拡張
DisplaySwitch.exe /extend
::セカンドスクリーンのみ
DisplaySwitch.exe /external
連続で使うときはtimeoutで数秒待ったりした方がいいのかもしれません。コマンドプロンプトで実行するときと、サービスで実行するときは挙動が異なることもあるので、いい感じの秒数を設定すると良いと思います。私は一つ実行するごとに1秒待っています。
デバイスの無効・有効を設定するコマンド
devconコマンドとハードウェアIDを使用します。
devconコマンドの用意
ここではインストールなしに devcon.exe を用意する必要を記載します。
下記の手順が面倒な人は Visual Studio をインストールして WDK をインストールするのが良いでしょう。
WDKのダウンロード
wdksetup.exe を下記からダウンロードします。OSのバージョンにあったリンクを選びます。
※Visual Studio のダウンロードは不要です。
Windows Driver Kit (WDK) のダウンロード
https://docs.microsoft.com/ja-jp/windows-hardware/drivers/download-the-wdk
Windows10ではない場合は、上記ページから左のメニューにある「その他の WDK のダウンロード」からダウンロードします。
devconの抽出
まずはダウンロードしたwdksetup.exeを実行します。適当に以下のように選択肢を選択すれば
解凍すると、
Windows Kits\[OSバージョン]\WDK\Installers
というフォルダができるのでInstallersフォルダを開きます。
ファイルの抽出
787bee96dbd26371076b37b13c405890.cab
または
82c1721cd310c73968861674ffc209c9.cab,
を探してダブルクリック(解凍)します。どちらかしかないと思います。
そしてその中の
filbad6e2cce5ebc45a401e19c613d0a28f
または
fil5a9177f816435063f779ebbbd2c1a1d2
というファイルを探します。どちらかしかないと思います。
最後にそのファイルをリネームして
devcon.exe
という名前にします。
あとは適当なフォルダにおいておけば完了です。
詳細なことは下記のQAが参考になります。
Quick Method to install DevCon.exe?
https://superuser.com/questions/1002950/quick-method-to-install-devcon-exe
コマンドの使い方
:: デバイスの無効化
C:\Users\myname\scripts\devcon disable "PCI\VEN_10DE&DEV_1B81&SUBSYS_85A01043&REV_A1"
:: デバイスの有効化
C:\Users\myname\scripts\devcon enable "PCI\VEN_10DE&DEV_1B81&SUBSYS_85A01043&REV_A1"
ダブルクォーテーションで囲っているのはハードウェアIDで、デバイスマネージャーから下図のようなかんじで知ることができます。
ハードウェアIDは基本的に一番長いもので良いと思います。が、使用ユーザーによって挙動が異なるようです。よくわかりませんが、ダメだったら管理者権限で実行してみたりしましょう。
コメント