Windowsで一部のモニターを省電力から復帰させたり、手動で落としたモニタの電源を入れなおすとウィンドウのサイズや配置が変わってしまうことがあります。
スクリーンショットを見ても意味不明かもしれませんが、作業しやすいように配置しておいたウィンドウのサイズや位置が勝手に変わってしまうので、地味だけど結構イラッと来ます。
ウィンドウの中がずれてしまっている例もありました。(一個上にある画像のダイアログが正しい表示)
というわけでいつも通り検索してみると、類似の現象が確認できました。
で、解決方法はやはり海外のサイトで見つかりました。
Windows 7 moves/resizes windows on monitor power cycle
私の環境では再起動する必要もなく問題は解決しました。
これでは解決しない場合にはもう一つ方法があります。
環境が限定されますが以前はこの方法で解決していたので、レジストリの方法で解決できない人は試してみてはいかがでしょうか。
スクリーンショットを見ても意味不明かもしれませんが、作業しやすいように配置しておいたウィンドウのサイズや位置が勝手に変わってしまうので、地味だけど結構イラッと来ます。
というわけでいつも通り検索してみると、類似の現象が確認できました。
- Windows7Home 省電力の設定でディスプレイの自動OFF後にマウスなどでディスプレイの電源ONになった際に開いていたいくつかのWindowが全て小さくなる
- ディスプレイの電源を切って入れ直すとデスクトップの各ウィンドウサイズが変わる
- Windows7がDisplayPortを見失う場合の回避策
- Windows7以降
- Windowsをインストールした直後でも発生
- ディスプレイアダプターを問わない(Intel, AMD, NVIDIA)が、アダプターを変えると発生しない人も
- HDMIかDisplayPortで接続
- 一部のモニタでのみ発生(SHARP LC-22K5, Panasonic TH-65PX500 その他)
- モニタの電源が切れると最低解像度と誤認してウィンドウのサイズと位置が変更される
- モニタの電源が入ると解像度は正常に復帰するが、ウィンドウはそのまま
- 解像度が元に戻らないケースもある(これはドライバの更新で解消することも)
で、解決方法はやはり海外のサイトで見つかりました。
Windows 7 moves/resizes windows on monitor power cycle
- レジストリエディタで HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration を開く
- その下にあるSIMULATED_****(環境によって異なるID)\00 にある PrimSurfSize.cx と PrimSurfSize.cyを希望のサイズに変更する(10進数に切り替えるのを忘れずに)
追記:環境によってはNOEDID_、MSBDD_、MSNILNOEDIDというキーの場合もある - さらに下の\00 にある ActiveSize.cx、ActiveSize.cy、PrimSurfSize.cx、PrimSurfSize.cy も同じサイズに変更する
- 追記:最近のバージョンではDwmClipBox.right、DwmClipBox.bottomもあるのでそれも同じように変更する
- 追記:Strideなど他の値も、モニタのメーカー名から始まるキー内のものと合わせたほうが良いかもしれません。
私の環境では再起動する必要もなく問題は解決しました。
これでは解決しない場合にはもう一つ方法があります。
- HDMI と D-sub(おそらくDVIでも可) の接続ポートがある
- 両方のケーブルを繋げて二本差しにする
- 設定 / システム / ディスプレイ - 複数のディスプレイ の項目で 「1のみに表示する」を選択(Windowsのバージョンによって異なる)
環境が限定されますが以前はこの方法で解決していたので、レジストリの方法で解決できない人は試してみてはいかがでしょうか。
コメント
コメント一覧 (13)
ActiveSize変更後再起動で直りました
ずっと困っていたので本当に助かりました。感謝!
最後のHDMI/DPケーブル2本挿しの方法で成功しました。ありがとうございました。
1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TMMのUseIViewHelperを0にして再起動。
またはATIのビデオカードの場合
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Videoか
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\class内を検索して
DMMEnableDDCPollingを0にして再起動。
代わりにNOEDID_*というキーがあり、それを修正すればいけました。
解決できました。
アイコン位置までずれてしまう始末。ずっと困っていましたがActiveSize変更で解決できました。
ありがとうございます。
キー名には独自のIDが付加されているので自前で追加するのは難しいと思います。
かわりにMSBDDまたはMSNILから始まるキーが使えるという情報を見かけましたが、どうでしょうか。
ありがとう!