web-dev-qa-db-fra.com

Comment puis-je empêcher le repositionnement des fenêtres après le réveil?

Je mets mon système multi-moniteurs en veille lorsqu'il n'est pas utilisé. Après mon réveil, toutes les fenêtres sont repositionnées sur un écran différent. Le motif le plus proche auquel je puisse penser est que les fenêtres présentes sur l’écran principal basculent vers le deuxième écran. Il semble que l’écran principal se déconnecte avant de s’endormir, ce qui fait passer toutes les fenêtres au 2e ou 3e écran.

Edit: Voici la carte vidéo que j'utilise -> SAPPHIRE FleX 100322FLEX Radeon HD 6450

110
Kingamoon

Le problème est probablement lié au pilote graphique. À chaque fois qu'un seul moniteur est déconnecté d'une configuration multimoniteur sous Windows, Windows tente de tout déplacer de cet écran vers le ou les écrans restants. Généralement, cela ne se produit pas lors de la suspension/hibernation/arrêt de l'ordinateur. C'est donc probablement à cause du pilote graphique qui effectue l'une des opérations suivantes:

  • 'Déconnecter' les moniteurs lorsque l'ordinateur est mis en veille. Lorsque Windows se réveille, il doit alors déterminer à nouveau où placer le tout.
  • Reconnaître les moniteurs dans un ordre différent chaque fois que vous sortez l'ordinateur de son état de veille, obligeant Windows à réorganiser les fenêtres de vos applications.

Vérifiez s'il existe une mise à jour de votre pilote graphique en vous rendant sur le site Web du fabricant du chipset.

33
Tanaki

C'est une vieille question, mais si quelqu'un arrive ici avec le même problème, je suggère d'essayer la solution affichée ici:

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

J'utilise Windows 8.1 avec deux écrans 2560x1440 sur DisplayPort. Au réveil, toutes mes fenêtres avaient été placées sur un seul écran et certaines d’entre elles avaient été redimensionnées. Cela corrige le problème pour moi; maintenant toutes mes positions et tailles de fenêtre sont préservées. Voici le contenu du lien pertinent:

J'ai trouvé un moyen de contourner le problème. À l'aide de Sysinternals ProcessMonitor, j'ai découvert que Windows accédait au chemin de registre suivant:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration

Mon système avait trois entrées:

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

Sous chacun se trouve un arbre appelé 00. Deux des clés sont:

  • PrimSurfSize.cx
  • PrimSurfSize.cy

Sous 00 se trouvait une autre branche également appelée 00. Deux des clés sont:

  • ActiveSize.cx
  • ActiveSize.cy

Dans les deux premières configurations (c'est-à-dire DELF00... & QHD3...), les clés ci-dessus étaient 1440x900, elles n'étaient donc pas impliquées.

Le troisième (SIMULATED...) a été défini sur 1024x768.

J'ai changé ceux-ci en 1600x900 et le problème a été résolu.

De plus, j'ai changé la résolution (via le panneau de commande) en 1920x1080, le problème de déplacement/redimensionnement est revenu, mais le coin inférieur droit était défini sur 1600x900, c'est-à-dire les paramètres SIMULATED....

Donc, pour une raison quelconque, l’une des configurations n’est pas configurée correctement.

Je ne sais pas pourquoi il y a trois configs, je n'ai jamais utilisé qu'un seul moniteur.

43
John Freeman

Si votre ordinateur est doté de la technologie Intel HD Graphics, vous devez définir les options d’extension d’affichage (et les paramètres de résolution) à partir du panneau de configuration Intel Graphics. Si vous le faites à partir des paramètres d'affichage Windows, il sera réinitialisé une fois que vous l'avez sorti du mode veille.

Voici une capture d'écran.

 enter image description here

12
bytestorm

Je pense avoir trouvé une solution de contournement à ce problème en combinant les idées de ces messages .

(Mon PC est Windows 10 TH2, Intel HD4600 avec port HDMI, moniteur Changhong 4k)

Voici la procédure.

  1. Supprimez toutes les entrées de registre supplémentaires sous ... GraphicDrivers\Configuration et GraphicDrivers\Connectivity, en ne laissant que l'entrée correspondant à mon moniteur (MST00301 ...)

  2. Avant de mettre le moniteur en veille, tapez simplement "WIN" + "D" combo pour réduire toutes les fenêtres du bureau.

  3. Après avoir allumé le moniteur, tapez "WIN" + "D" à nouveau pour restaurer toutes les fenêtres.

8
Kang

Toutes les cartes NVidia ne prennent pas en charge la possibilité de simuler l'EDID, et ce n'est pas seulement le mode veille qui cause ce problème. Si un moniteur est éteint ou se déconnecte brièvement, il peut causer des dégâts sur une disposition d'écran soigneusement configurée. Comme aucune des solutions ici ne fonctionnait pour moi, j'ai écrit un utilitaire permettant de restaurer les positions des fenêtres lorsque le nombre de moniteurs change. Il est disponible avec le code source ici .

2
Garr Godfrey

Dans mon cas, avec trois moniteurs 1920x1080 disposés horizontalement, il semble avoir été corrigé en allant à la clé de registre mentionnée dans d'autres réponses (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration), en trouvant la clé en commençant par SIMULATED, puis en modifiant toutes les valeurs de 1920 sous cette clé en 5760 (1920 fois trois, pour les trois moniteurs).

J'imagine que la touche SIMULATED est utilisée lorsque le PC se met en veille, mais Windows doit tout de même conserver un ordinateur de bureau en train de passer au mode veille/de le reprendre, même lorsque le ou les écrans réels ne se signalent pas encore.

2
wmassingham

En règle générale, cela est dû au fait que le pilote graphique ne prend pas correctement en charge les modes de veille et empêche donc la possibilité de détecter un écran connecté lorsque l'ordinateur se met en veille.

Mettez à jour vos pilotes graphiques auprès du fabricant pour résoudre le problème.

Si le problème n'est toujours pas résolu après la mise à jour des pilotes, cela peut être dû à un ID d'affichage inhabituellement signalé (EDID). Vous pouvez généralement forcer la détection d'un moniteur dans le panneau de configuration du pilote graphique.

Toutefois, si cette option n’est pas disponible, vous pouvez utiliser la fenêtre Résolution de Windows pour détecter les périphériques lorsque le moniteur est déconnecté, puis sélectionner l’affichage qui affichera «Un autre affichage non connecté», puis sous Plusieurs affichages, vous pouvez faire défiler et sélectionner «Essayer de». connect anyway ”qui transmettra un signal au moniteur via le type de port que vous avez sélectionné (le signal ne sera pas interactif), puis connectez l'écran qui doit interpréter correctement les signaux qui lui sont envoyés.

La résolution forcée annulera la détection de l'écran et devrait persister pendant le sommeil.

2
WinOutreach2

Même problème ici avec Windows 8.1 et Macbook Air 2013 (Intel HD Graphics 5000). J'essaie tout. Enfin, je suis allé à Intel pour mettre à jour les derniers pilotes pour ma carte graphique et le problème persiste. Ensuite, je suis allé à la propriété Graphics. Mon deuxième écran étant allumé, dans l'affichage multiple, j'ai choisi 'Déconnecter cet écran', puis après le deuxième affichage déconnecté, j'ai choisi d'étendre mon bureau et le problème disparaît. J'espère que cela fonctionne pour toi.

2
arormoser

Pour moi, le correctif était https://superuser.com/a/908156/238666 . Résumé: Windows ne parvient pas à lire les informations EDID sur le moniteur lors du réveil et, dans le panneau de configuration de Nvidia, vous pouvez enregistrer les informations EDID dans un fichier et configurer le PC pour qu'il puisse les lire à partir de ce fichier, sous la Tâche: Poste de travail, Afficher le système. Topologie, source EDID.

De mon point de vue limité, le problème fondamental pourrait être la carte Nvidia, mais également Windows, DisplayPort ou le moniteur (Lenovo X1 4K)

1
Roland