【Windows】DisplayPortのホットプラグ検知によるウィンドウ移動を防ぐレジストリ設定

【Windows】DisplayPortのホットプラグ検知によるウィンドウ移動を防ぐレジストリ設定
🛡️ 超解決

外部ディスプレイをDisplayPortで接続している環境で、ディスプレイの電源をオフにしたり、PCがスリープから復帰したりすると、開いていたウィンドウが勝手に移動してしまうことがあります。

これはDisplayPortのホットプラグ検知機能が原因で、Windowsがディスプレイの一時的な切断を誤認識するために発生します。

この記事では、レジストリ設定を変更することで、このウィンドウ移動を防ぎ、作業効率を向上させる具体的な手順を解説します。

【要点】DisplayPortのウィンドウ移動を抑制するレジストリ設定

  • システム復元ポイントの作成: レジストリ編集前のPCの状態を保存し、万が一のトラブルに備えます。
  • レジストリのバックアップ: 編集するレジストリキーをエクスポートして、簡単に元に戻せるようにします。
  • DdcTimeout値の変更: DisplayPortのホットプラグ検知によるディスプレイ切断の誤認識を遅延させ、ウィンドウ移動を抑制します。

ADVERTISEMENT

DisplayPortホットプラグ検知とウィンドウ移動の仕組み

DisplayPortは、ディスプレイの接続状態をPCに伝えるホットプラグ検知機能を搭載しています。

通常、ディスプレイの電源をオフにしたり、省電力モードに入ったりすると、このホットプラグ検知信号が一瞬途切れることがあります。

Windowsはこの信号の途切れをディスプレイが物理的に切断されたものと誤認識します。

その結果、誤認識されたディスプレイで開いていたウィンドウを、現在接続されている他のディスプレイに自動的に移動させてしまうのです。

この挙動は、特にマルチディスプレイ環境で頻繁に発生し、ユーザーの作業を中断させる原因となります。

レジストリのDdcTimeout値を調整することで、Windowsがディスプレイの切断を認識するまでの時間を長くし、一時的な信号の途切れを無視できるようになります。

DisplayPortのウィンドウ移動を防ぐレジストリ設定の手順

レジストリの編集は、Windowsのシステム動作に直接影響を与えるため、細心の注意が必要です。

必ず事前にバックアップを取得してから作業を進めてください。

レジストリ編集前のバックアップ手順

  1. システム復元ポイントを作成する
    Windowsの検索ボックスに「復元ポイント」と入力し、「復元ポイントの作成」を選択します。
    「システムの保護」タブで、システムドライブが「有効」になっていることを確認します。
    「作成」ボタンをクリックし、任意の名前を入力して復元ポイントを作成します。
  2. レジストリをバックアップする
    Windowsの検索ボックスに「regedit」と入力し、レジストリエディターを起動します。
    レジストリエディターの左ペインで「コンピューター」を選択します。
    「ファイル」メニューから「エクスポート」を選択します。
    「エクスポート範囲」で「すべて」を選択し、任意のファイル名でレジストリファイルを保存します。

レジストリ設定の変更手順

  1. レジストリエディターを起動する
    Windowsの検索ボックスに「regedit」と入力し、「レジストリエディター」を右クリックして「管理者として実行」を選択します。
  2. 目的のキーへ移動する
    レジストリエディターのアドレスバーに以下のパスをコピーして貼り付け、Enterキーを押します。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
  3. 新しいDWORD値を作成する
    右ペインの空いている場所を右クリックし、「新規」から「DWORD 32ビット値」を選択します。
    新しい値の名前を「DdcTimeout」と入力します。
  4. 値のデータを設定する
    作成した「DdcTimeout」をダブルクリックします。
    「値のデータ」に「10000」と入力します。
    「表記」は「10進数」を選択し、「OK」をクリックします。
    この値はミリ秒単位で、10000は10秒を意味します。
  5. レジストリエディターを終了する
    レジストリエディターを閉じます。
  6. PCを再起動する
    PCを再起動して、レジストリの変更をシステムに適用します。

レジストリ設定後の注意点と関連トラブル

レジストリ設定後も問題が解消されない場合や、予期せぬ挙動が発生した場合は、以下の点を確認してください。

設定してもウィンドウ移動が解消されない場合

レジストリ設定をしてもウィンドウ移動が続く場合は、他の要因が影響している可能性があります。

  1. グラフィックドライバーの更新: グラフィックカードメーカーのウェブサイトから最新のドライバーをダウンロードし、インストールしてください。
    古いドライバーや破損したドライバーは、DisplayPortの挙動に悪影響を与えることがあります。
  2. DisplayPortケーブルの品質確認: 使用しているDisplayPortケーブルが、規格に適合した高品質なものであるか確認してください。
    安価なケーブルや損傷したケーブルは、信号の安定性を損なう原因になります。
  3. ディスプレイファームウェアの更新: ディスプレイ自体のファームウェアが古い場合、DisplayPortの互換性問題が発生することがあります。
    ディスプレイメーカーのウェブサイトで、最新のファームウェアが提供されていないか確認してください。
  4. 他のディスプレイ設定の影響: Windowsの設定アプリで「システム」から「ディスプレイ」を開き、マルチディスプレイの設定が正しく構成されているか確認してください。
    特に「複数のディスプレイ」の項目で「メインディスプレイ」が意図した通りに設定されているか確認します。

DdcTimeout値の調整による影響

DdcTimeoutの値は、DisplayPortのホットプラグ検知のタイムアウト時間をミリ秒単位で設定します。

  1. 値を大きくしすぎるとディスプレイ検出が遅延する: DdcTimeoutの値を極端に大きく設定すると、PCがディスプレイを認識するまでの時間が長くなる可能性があります。
    ディスプレイの接続時に、画面が表示されるまでに時間がかかるといった問題が生じることがあります。
  2. 適切な値を見つけるための試行錯誤: 初期値として10000ミリ秒を設定しましたが、環境によってはこの値で効果がない場合や、遅延が気になる場合があります。
    5000ミリ秒や15000ミリ秒など、値を調整して最適な設定を見つけることを推奨します。

レジストリ設定を元に戻す方法

設定を元に戻したい場合は、以下のいずれかの方法で対応してください。

  1. 作成したDWORD値を削除する: レジストリエディターでHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDriversに移動し、作成したDdcTimeoutを右クリックして「削除」を選択します。
    その後、PCを再起動します。
  2. バックアップからレジストリを復元する: 事前にエクスポートしたレジストリファイルをダブルクリックすると、レジストリが上書きされます。
    システム復元ポイントを作成している場合は、そちらからシステムを以前の状態に戻すことも可能です。

ADVERTISEMENT

Windows 11とWindows 10のDisplayPort挙動の違い

項目 Windows 11 Windows 10
ディスプレイ管理 より統合されたディスプレイ設定UIを提供 従来のディスプレイ設定UIが中心
ウィンドウ再配置 ディスプレイ接続変更時のウィンドウ再配置がより積極的に行われる傾向 同様の挙動があるが、Windows 11ほど積極的ではない場合も
レジストリ設定の有効性 本記事のDdcTimeout設定は有効 本記事のDdcTimeout設定は有効
HPD信号処理 グラフィックドライバーのバージョンに依存し、OS側で直接制御する設定は限定的 グラフィックドライバーのバージョンに依存し、OS側で直接制御する設定は限定的

この記事で解説したレジストリ設定を適用することで、DisplayPort接続の外部ディスプレイで発生するウィンドウの自動移動問題を解決できます。

これにより、ディスプレイの電源操作やPCのスリープ復帰時にも、ウィンドウが意図せず移動することなく、快適なマルチディスプレイ環境で業務を継続できます。

もし問題が再発する場合は、グラフィックドライバーの更新やDisplayPortケーブルの交換、DdcTimeout値の再調整を試してください。

安定した作業環境を維持するため、定期的にグラフィックドライバーの更新を確認することも重要です。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。