スリープから復帰した後、ウィンドウの再配置を停止するにはどうすればよいですか?


116

マルチモニターシステムを使用していないときはスリープ状態にします。起動すると、すべてのウィンドウが別の画面に再配置されます。私が考えることができる最も近いパターンは、メイン画面にあったウィンドウがセカンド画面に切り替わることです。スリープ状態になる前にメイン画面を切断し、すべてのウィンドウを2番目または3番目の画面に切り替えるように見えます。

編集:これは私が使用しているビデオカードです-> SAPPHIRE FleX 100322FLEX Radeon HD 6450


1
使用しているグラフィックアダプターを指定する必要があります。これはおそらく障害です。
-Shinrai

3
私はこれまで決定的な解決策を見つけた:スティーブン、(のようにしてくださいST99)、と言うここで第九の答えに
Soldeplata Saketos

同じ問題がkubuntuにもありますが、誰もが解決策を持っていますか?
ワクレ2016

回答として追加することはできませんが、この回答この回答を読んだところ、HKLM \ SYSTEM \ CurrentControlSet \ Control \ GraphicsDrivers \ Configurationの操作であることがわかりました。すべての追加モニターを切断した状態で、このパスのすべてのキーを削除し、PCを再起動します。このパスに追加された新しいキーに注意してください(A)。モニターを再接続し、さらに新しいキーが追加されたことに注意してください(B)。必要に応じてディスプレイ設定をセットアップします。新しいキーが再び追加されます(C)。各キーは表示設定を表します。不要なキー(おそらくキーB)を削除します。
ネオ

回答:


34

この問題は、グラフィックドライバーにある可能性が最も高いです。1台のモニターがWindowsのマルチモニター設定から切断されると、Windowsはその画面から残りの画面にすべてを移動しようとします。通常、これはコンピューターをサスペンド/休止/シャットダウンしているときは発生しません。したがって、おそらくグラフィックドライバが次のいずれかを実行していることが原因です。

  • コンピューターをスリープ状態にすると、モニターが「切断」されるため、Windowsが起動すると、すべてを配置する場所を再決定する必要があります。
  • コンピューターのスリープ状態を解除するたびにモニターを異なる順序で認識し、Windowsにアプリケーションウィンドウの再配置を強制します。

チップセットの製造元のWebサイトにアクセスして、グラフィックドライバーの更新があるかどうかを確認します。


1
参考:私のドライバーはIntelからのものであるため、Windows Updateで署名および配布されたと推測しましたが、そうではありませんでした。
レオ

1
ここで同様の問題。nVidiaグラフィックアダプターを搭載したDellラップトップを使用しています。Dellドライバの代わりにnVidiaから新しいドライバをインストールすると、問題が修正されました。
クリスジョーンズ

1
ここで同様の問題。最新のOEM Intel HD 4600ドライバー。PCベンダー(HP)のドライバーを確認する必要がありますか?
ファルコアレクサンダー

2
7i5bnk NUCの同じ問題-最新のIntelドライバーを
入手-niico

46

これは古い質問ですが、同じ問題で誰かがここに到着した場合、ここに投稿された解決策を試すことをお勧めします:

http://answers.microsoft.com/en-us/windows/forum/windows_7-hardware/windows-7-movesresizes-windows-on-monitor-power/1653aafb-848b-464a-8c69-1a68fbd106aa

DisplayPortに2つの2560x1440ディスプレイを搭載したWindows 8.1を実行しています。スリープから復帰すると、すべてのウィンドウが1つのディスプレイにプッシュされ、一部のウィンドウのサイズが変更されました。これで問題が解決します。これで、すべてのウィンドウの位置とサイズが保持されます。関連するリンクコンテンツは次のとおりです。

回避策を見つけました。Sysinternals ProcessMonitorを使用して、Windowsが次のレジストリパスにアクセスしていることがわかりました。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration

私のシステムには3つのエントリがありました。

  • DELF003YY7707BR0MUL_30_07D7_6A^9A3774EB79DEE3E3E38496CC7DF4D936
  • QHD32000001_31_07D6_D5^63E1ABDD175E7871DCAEB710418A0F75
  • SIMULATED_8086_2A42_00000000_00020000_1010100^CDE365D1B3F0942F0CF38BFB8E127AB4

それぞれの下にと呼ばれるツリーがあります00。キーの2つは次のとおりです。

  • PrimSurfSize.cx
  • PrimSurfSize.cy

下に00は別のブランチもありました00。キーの2つは次のとおりです。

  • ActiveSize.cx
  • ActiveSize.cy

最初の2つの構成(つまりDELF00...QHD3...)では、上記のキーは1440x900であったため、関係しませんでした。

3番目(SIMULATED...)は1024x768に設定されました。

これらを1600x900に変更し、問題を解決しました。

さらに、(コントロールパネルを介して)解像度を1920x1080に変更すると、移動/サイズ変更の問題が返されましたが、右下隅が1600x900、つまりSIMULATED...設定に設定されました。

そのため、何らかの理由で構成の1つが正しく設定されません。

なぜ3つの設定があるのか​​分かりませんが、モニターを1つしか使用したことがありません。


15
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ GraphicsDrivers \ Configuration全体を削除するだけで、同様に機能し、高速になります。
-FarO

3
エントリを削除しても機能しません(Windows 10)。モニターをオフにするとすぐに、「SIMULATED」エントリが再び作成されます。元のソリューションが機能します(つまり、実際の解像度で1024,768の各出現を変更します)。
FractalSpace

2
ここで私は、Windows 10用のMicrosoft Answersの上で見つかった別の関連のポストだanswers.microsoft.com/en-us/windows/forum/windows_10-hardware/...
Chiramisu

1
@OlafMが示唆したように設定全体を削除することは完全に機能します。私の場合、Windowsは約30エントリを嫌います。再起動後、実際にintを接続したモニターのみを含む1つだけが再作成されました。
マジャ

1
構成フォルダー内のすべてを削除することに緊張していましたが、最初にエクスポートを行い、すべてを削除すると問題が修正されました。再開後、モニターの順序を設定する必要があり、修正されません。
ドロ

13

コンピューターにIntel HD Graphicsが搭載されている場合は、Intel Graphicsコントロールパネルから拡張ディスプレイオプション(および解像度設定)を設定する必要があります。Windowsディスプレイ設定から実行すると、スリープモードから復帰した後にリセットされます。

これがスクリーンショットです。

ここに画像の説明を入力してください


私にとっては何も変わりませんでした。または、Intelソフトウェアで行う前に、Windowsの設定を完全に消去する必要がありますか?
クリストフドレヴェドロゲ

1
設定をリセットし、Intelグラフィックスから適用した後、私にとってはうまくいきました。
ティダールクラインオーバッハ

単にいくつかのオプションを切り替えてから、元に戻しました。「適用」ボタンを有効にし、ドライバーから構成を保存しました。手動ロックの後でうまく機能します。私は長い期間の後何が起こるかを見るだろう
アルディアン

これはWindows 10で機能し、正気を取り戻しました。
shoelzer

9

これらの投稿のアイデアを組み合わせて、この問題の回避策を見つけたと思います。

(私のPCはWindows 10 TH2、HDMIポート付きIntel HD4600、Changhong 4kモニターです)

手順は次のとおりです。

  1. ... GraphicDrivers \ Configuration and GraphicDrivers \ Connectivityの下にある余分なレジストリエントリをすべて削除し、モニターに対応するエントリのみを残します(MST00301 ...)

  2. モニターをスリープ状態にする前に、「WIN」+「D」コンボキーを入力して、すべてのデスクトップウィンドウを最小化します。

  3. モニターをオンにした後、「WIN」+「D」をもう一度入力して、すべてのウィンドウを復元します。


1
Win + Dは必要ないと思います。すべてのエントリを削除してpcを再起動すると、外部モニターが登録に再び追加されます。その後、期待どおりに動作するようです。Windowsは多くの異なる構成と混同されたのかもしれません。私の場合、12のエントリがあり、現在は2つしかありません。maxrev.de
mgutt

これは私にとってはうまくいきましたが、新しいSIMULATED_ ...キーを修正した後のみです。再起動後、[構成と接続]の下に2つの新しいエントリがありました。SIMULATED_ 00エントリには、cx、cy、およびstride値に対して1024、768、および4096がありましたが、これらは間違っています。私のモニターにとって正しいと思われる他のキーからそれらの値だけをコピーし、再起動しました。単一の40インチ4Kモニター、Wasabi Mango UHD400があり、問題は修正されました
。– pixelgrease

私にとって、Win + Dトリックは、レジストリを変更しなくても機能しますが、これは機能しませんでした。デスクトップを最小化する必要がないことに注意してください。1024x768ボックスの外側にあるデスクトップアイコンは、モニターの電源を入れ直しても移動しません。また、最大化されたウィンドウには、サイズ変更/移動の問題はありません。
ローランド

4

すべてのNVidiaカードがEDIDを偽造する機能をサポートしているわけではありません。また、この問題の原因はスリープだけではありません。モニターの電源をオフにしたり、短時間切断したりすると、慎重に構成された画面レイアウトに大損害を与える可能性があります。ここでの解決策はどれもうまくいかなかったため、モニターの数が変わったときにウィンドウの位置を復元するユーティリティを作成しました。ここでソースコードを入手できます


1
私は@GarrGodfreyのプログラムをテストしましたが、それは魅力的でした。

2

通常、これは、スリープモードを適切にサポートしていないグラフィックスドライバーが原因で発生するため、コンピューターがスリープ状態になると、接続されたディスプレイを検出できなくなります。

問題を解決するには、製造元からグラフィックドライバーを更新します。

ドライバーを更新しても問題が解決されない場合は、異常に報告されたディスプレイID(EDID)が原因である可能性があります。通常、グラフィックスドライバーのコントロールパネル内でモニターを強制的に検出できます。

ただし、これが利用できない場合は、Windows解像度ウィンドウを使用して、モニターが切断されている間にデバイスを検出し、「別のディスプレイが接続されていません」と表示されるディスプレイを選択します。選択したポートタイプを介してモニターに信号をブロードキャストし(信号は対話的ではありません)、送信された信号を適切に解釈するディスプレイを接続します。

強制解像度は画面の検出を無効にし、スリープ状態が続くまで持続します。


2

Windows 8.1およびMacbook Air 2013(Intel HD Graphics 5000)でも同じ問題が発生します。私はすべてを試します。最後に、グラフィックカードの最新ドライバーで更新されたIntelに行きましたが、問題は続きます。次に、グラフィックプロパティに移動し、マルチディスプレイで2番目のディスプレイをオンにして「このディスプレイを切断」を選択し、2番目のディスプレイを切断した後、デスクトップを拡張して問題が消えるようにします。これがあなたのために働くことを願っています。


最新のドライバーを搭載したMacbook Air 2013もありますが、それでも問題は解決しませんでした。どうすれば解決できますか?
アンドリュー

2

私の場合、3つの1920x1080モニターが水平に配置されているため、他の回答(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration)に記載されているレジストリキーに移動しSIMULATED、で始まるキーを見つけ、そのキーの下の1920のすべての値を5760(1920)に変更することで修正されたようです3回のモニターに対して3回)。

SIMULATEDPCがスリープ状態になるときにキーが使用されると思いますが、実際のモニターがまだ自分自身を報告していない場合でも、Windowsはスリープ状態への移行/スリープ解除のプロセスでデスクトップを維持する必要があります。


これが私を最も助けたものです。2番目の段落は特に正しいようです。画面がオフのとき、ウィンドウは他のモニターに移動しますが。
アンドリュー

1

私にとって、修正はhttps://superuser.com/a/908156/238666でした。要約:Windowsは、起動時にモニターからEDID情報を読み取れません。Nvidiaコントロールパネルで、EDID情報をファイルに保存し、タスク:ワークステーション、システムの表示でそのファイルからPCを読み取るように設定できますトポロジ、EDIDソース。

私の限られた見解では、根本的な問題はNvidiaカードだけでなく、Windows、DisplayPort、またはモニター(Lenovo X1 4K)である可能性があります



-1

好むと好まざるとにかかわらず、しかし、特定の4Kモニターを搭載したDellの既知の問題に応じてリンクされています http://www.dell.com/support/Article/us/en/19/SLN295708/EN 私は30Hzの59 / 60Hzのから切り替える必要がありましたインテルの4600上の3台のDell P2415Q 4K UHDをディスプレイのDP / mDPに接続すると、助けになりました-デルのKB記事に書いてあります。UP3214QおよびP2715Qにも適用されます。

この問題は、低解像度QHD Dell U2515H +同じビデオ/ PCでは現れませんでした

レジストリキーの削除とドライバーの更新は役に立ちませんでした。

UPD 2018/08:また、グラフィックカードをNVIDIA Quadro P600にアップグレードしても問題は解決しなかったため、30Hzのままにします。


1
ウル、30Hzを使うのはひどいので、ぎこちない。
サイモンイースト

@SimonEast、私がこの回答を投稿して30Hzでこれらの4K-sを使用してから1年が経ち、蛍光灯とLEDのちらつきに敏感であり、可能な場合はDC 12Vハロゲン照明を好む、私はこれらの4K Dellモニターで30Hzは大丈夫だと思う。Youtubeアクションvidは比較的スムーズですが、これらの画面は主にコード、端末、メール、チャットに使用します-1日あたり10〜12時間経過しても疲れません
。– kuz8
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.