Comment restaurer les fenêtres à leur écran d'origine lors de la reconnexion du moniteur externe?

17

Imaginez que vous fassiez cela ...

  1. Connectez votre moniteur externe.
  2. Démarrez certaines applications, certaines sur chaque moniteur.
  3. Déconnectez le moniteur externe.
    • Tout va bien car toutes les applications déplacent le moniteur principal.
  4. Rebranchez le moniteur externe.
    • Les applications restent sur le moniteur principal, mais ce serait très bien si elles retournaient sur le moniteur externe sur lequel elles étaient auparavant.

Utilisation de Windows 10. Existe-t-il des solutions ou des solutions pour déplacer automatiquement les applications vers le moniteur externe?

joelsand
la source
6
Vous voudrez peut-être jeter un œil ici - - superuser.com/q/240362/302907
Anaksunaman

Réponses:

1

Dans le passé, j'ai utilisé un outil Autohotkey appelé Windowpad pour cela. Apparemment, cela a maintenant été remplacé par une nouvelle version améliorée appelée WindowPadX . Faites défiler vers le bas pour voir le fichier Lisez-moi. La documentation complète est ici .

C'était crucial pour moi sur plusieurs moniteurs. J'ai adoré pouvoir basculer facilement une fenêtre entre les deux.

Vous pouvez définir des raccourcis clavier pour les éléments suivants (à partir du fichier Lisez-moi):

Actions possibles à configurer sur les raccourcis clavier

Actions de fenêtre

Multi-moniteur

WPXA_MoveWindowToMonitor: déplacer la fenêtre entre les écrans, en préservant la position et la taille relatives.

WPXA_MinimizeWindowsOnMonitor: minimiser toutes les fenêtres sur l'écran donné

WPXA_GatherWindowsOnMonitor: "Regrouper" les fenêtres sur un écran spécifique.

WPXA_FillVirtualScreen: Développez la fenêtre pour remplir l'écran virtuel (tous les moniteurs).

Général

WPXA_MaximizeToggle: agrandit ou restaure la fenêtre.

WPXA_TopToggle: Toogles "AlwaysOnTop" pour une fenêtre donnée

WPXA_RollToggle: bascule "Roll / Unroll" pour une fenêtre donnée WPXA_Move: déplacez et redimensionnez la fenêtre sur la base d'un concept "pad".

WPXA_TileLast2Windows: mosaïque active et dernière fenêtre

Actions de la souris multi-écrans

WPXA_MoveMouseToMonitor: déplace la souris au centre du moniteur donné

WPXA_ClipCursorToCurrentMonitorToggle: Toogles coupant la souris sur le moniteur actuel

WPXA_ClipCursorToMonitor: Clips (Restreint) la souris au moniteur donné

Actions générales de la souris

WPXA_MouseLocator: Trouvez facilement la souris

Vous pouvez le trouver et d'autres outils parmi une "Une liste organisée de superbes bibliothèques AutoHotkey, des distributions de bibliothèque, des scripts, des outils et des ressources" ici

ludinom
la source
cette liste de fonctionnalités suggère qu'il peut déplacer les fenêtres, mais peut-il restaurer leurs positions dans un état particulier? que signifient «rassembler» et «rouler / dérouler sur la base d'un concept de pad»?
TT--
@ TT-- "Gather" rassemble toutes les fenêtres sur l'affichage actuel. C'est très bien quand, par exemple, je veux toutes les fenêtres sauf une ou peut-être quelques fenêtres sur un seul écran, et la ou les fenêtres sur lesquelles je me concentre sur mon moniteur principal. "WPXA_MaximizeToggle: Agrandir ou restaurer la fenêtre" doit alterner entre maximisé et l'original. "Roll / Unroll ..." masque la zone de travail d'une fenêtre, et ne laisse que la barre de titre affichée, ou passe d'un état enroulé à la restauration de la fenêtre complète. Une partie de cela vient de la mémoire et je ne suis peut-être pas exactement correct, mais sinon, c'est assez proche.
ludinom
1
merci pour les détails supplémentaires. On dirait que MaximizeTogglecela restaurerait les fenêtres sur différents écrans comme je le cherchais. J'ai fini par utiliser ce «DockWin» qui le fait spécifiquement (et rien d'autre).
TT--
0

Certains GPU prennent en charge cela, comme le panneau de configuration Nvidia qui vous permet d'appliquer des paramètres pour cela et de nombreuses autres fonctionnalités.

Ou vous pouvez simplement définir les paramètres d'affichage multiples pour refléter le bureau (au lieu d'étendre) sur tous les moniteurs si cela fonctionne pour vous.

CymaTechs
la source
0

Les programmes Windows - appelés application (lication) de nos jours - peuvent enregistrer la position de leur fenêtre dans un fichier ou le registre. Si l'on sait où se trouvent ces données, elles peuvent être modifiées manuellement dans le bloc-notes ou l'éditeur de registre. (des entrées de registre incorrectes peuvent provoquer une instabilité ou des erreurs Windows)

La création d'un moyen automatisé devrait être facile pour quelqu'un ayant un peu de compétences en codage et il peut être démarré selon les besoins (c'est-à-dire après que le moniteur est rebranché). Cela pourrait être fait par un script d'action, un fichier .bat ou une application native.

Les candidatures en question devront cependant être fermées avant pour que les postes souhaités soient mis en œuvre.

Une autre possibilité avec une capacité "en ligne" (aucun redémarrage d'application nécessaire) serait si Windows permet d'accéder à une fenêtre d'un processus par un autre. Une approche pourrait être les fonctions SendMessage et WindowProc.

(Je ne suis pas sûr à ce stade si cela ne s'applique qu'aux threads de l'application parente ou peut être fait par des threads d'autres applications également ... et nécessite bien sûr de bonnes connaissances en programmation pour Windows)

https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

Envoie le message spécifié à une ou plusieurs fenêtres. [...] Si la fenêtre spécifiée a été créée par le thread appelant, la procédure de fenêtre est appelée immédiatement en tant que sous-routine. Si la fenêtre spécifiée a été créée par un autre thread, le système bascule vers ce thread et appelle la procédure de fenêtre appropriée.

Message WM_Move https://docs.microsoft.com/en-us/windows/desktop/winmsg/wm-move

Envoyé après le déplacement d'une fenêtre.

Une fenêtre reçoit ce message via sa fonction WindowProc.

https://msdn.microsoft.com/en-us/library/ms633573%28v=VS.85%29.aspx?f=255&MSPPError=-2147217396

Fonction définie par l'application qui traite les messages envoyés à une fenêtre. [...]

DigitalBlade969
la source
0

J'utilise UltraMon (je pense que c'est Open Source) et dans certaines circonstances, il peut le faire, s'il est configuré correctement.

Faites d' abord installer le programme UltraMon . Ensuite, quand il est en cours d'exécution, disons que vous n'avez qu'un seul moniteur branché (peu importe le nombre), créez un profil:

  • Cliquez avec le bouton droit sur l'icône dans la barre d'état système
  • Clic gauche Profils d'affichage
  • Cliquez avec le bouton gauche sur le nouveau profil d'affichage, nommez-le (par exemple, ce que je fais est de lui donner un nombre reflétant le nombre de moniteurs que vous utilisez, comme le profil 1).
  • Vous en avez maintenant un. Cool, vous pouvez créer un fond d'écran pour chaque moniteur, économiseurs d'écran, etc. Obtenez toutes vos icônes comme vous le souhaitez.
  • Cliquez avec le bouton droit sur l'icône du système.
  • Clic gauche sur les icônes du bureau

Connectez / déconnectez maintenant d'autres écrans. Créez un profil pour cette nouvelle configuration. Peut-être appelez-le "Profil 7" pour avoir branché 7 moniteurs. Enregistrez maintenant les positions des icônes quand elles sont comme vous le souhaitez.

Vous pouvez facilement utiliser cet outil pour basculer entre les profils. Vous pouvez facilement placer des raccourcis sur le bureau pour basculer rapidement entre les profils.

Enfin, dans les options avancées, vous pouvez dire à UltraMon de le faire tout le temps, automatiquement pour vous, mais cela peut nécessiter une version payante (frais uniques à vie).

J'ai acheté UltraMon en 2009 pour 19,99 $ et ça valait vraiment la peine.

PyTis
la source
3
Pouvez-vous expliquer le "comment", les circonstances dans lesquelles cela fonctionne et comment le configurer correctement?
fixer1234
Oui monsieur / maman. Faites d'abord installer le programme UltraMon. www.ultramon.com Ensuite, quand il est en cours d'exécution, disons que vous n'avez qu'un seul moniteur branché (peu importe le nombre) créez un profil: Cliquez avec le bouton droit sur l'icône dans la barre d'état système Cliquez avec le bouton gauche sur Profils d'affichage Cliquez avec le bouton gauche sur Nouveau profil d'affichage Nommez-le (c'est ce que je fais) en fonction du nombre de moniteurs que vous utilisez, comme le profil 1. Vous en avez maintenant un. Cool, vous pouvez créer un fond d'écran pour chaque moniteur, économiseurs d'écran, etc. Obtenez toutes vos icônes comme vous le souhaitez. Cliquez avec le bouton droit sur l'icône de la barre d'état système. Icônes de bureau du clic gauche Gauche Enregistrer les positions
PyTis
Continuant, connectez / déconnectez maintenant d'autres écrans. Créez un profil pour cette nouvelle configuration. Peut-être appelez-le "Profil 7" pour avoir branché 7 moniteurs. Enregistrez maintenant les positions des icônes quand elles sont comme vous le souhaitez. Vous pouvez facilement utiliser cet outil pour basculer entre les profils. Vous pouvez facilement placer des raccourcis sur le bureau pour basculer rapidement entre les profils. Enfin, dans les options avancées, vous pouvez dire à UltraMon de le faire tout le temps, automatiquement pour vous, mais cela peut être une option payante (une fois pour toute la vie). J'ai acheté UltraMon en 2009 pour 19,99 et ça valait vraiment la peine.
PyTis
Cela ne semble pas répondre à la question - la question concernait la restauration des fenêtres d'application sur chaque moniteur, cela concerne les icônes du bureau (et les choses connexes). Cela ressemble à un outil utile, mais pas pertinent.
Bobson
0

Win Redock a le mieux fonctionné pour moi. Redock est automatique - enregistre et restaure les fenêtres sans aucune intervention. La magie! Son open source aussi!

BT
la source
-1

Si vous déplacez + clic droit sur l'icône dans la barre des tâches, puis appuyez sur déplacer, vous pouvez utiliser les touches fléchées pour déplacer la fenêtre et la touche entrée pour définir la position. J'ai eu le même problème il y a quelques années.

Une autre solution consiste à utiliser DisplayFusion pour accrocher la fenêtre au moniteur le plus proche (le seul connecté) avec le raccourci "Déplacer toutes les fenêtres vers le moniteur actuel".

hydraxx
la source
1
pourquoi si complexe? Si vous voulez simplement passer à un autre moniteur, utilisez simplement windows + shift + gauche / droite
phuclv
-1

Il n'y a pas de solution pour cela, vous devez utiliser la touche Windows du clavier avec les flèches gauche droite pour vous déplacer entre les écrans, ou la touche Windows + Maj + gauche / droite pour vous déplacer sur certaines parties de l'écran.

La touche Windows + P aide également dans les situations multi-écrans pour faciliter la mise en miroir / l'extension, etc.

Mais encore une fois, une fois que vous avez déconnecté votre écran, si ces fenêtres contenaient des métadonnées, elles disparaissent par la suite

Pixel
la source
En fait, il existe plusieurs solutions. Un ou deux dont vous avez parlé. Changer la résolution en est un autre.
Hennes
-2

Vous pouvez le faire, si vous êtes un vieux "gars du clavier" comme moi; -] J'ai compris cela il y a longtemps, étant que je suis multi-mon depuis le début des années 90, cela a été un problème de très longue date, parmi légèrement interfaces utilisateur différentes.

Le moyen le plus simple que j'ai trouvé pour les applications hors écran / frontalières est:

  • Sélectionnez simplement l'application, via la barre des tâches ou Alt-Tab
  • Maintenez la touche Alt enfoncée et appuyez sur la barre d'espace ( Alt- Spacebar)
  • Vous verrez un menu, sur votre ou vos écrans principaux, dont une option sera "Déplacer", avec le M souligné.
  • En tant que tel, appuyez sur la touche "M", tandis que le menu est toujours activé
  • À ce stade, ne pointez pas / cliquez / etc, car vous "repositionnez" maintenant la fenêtre active (celle hors écran).
  • Vous pouvez faire glisser la souris ( AUCUN BOUTON POUSSER POUR MAINTENANT ), et vous devriez voir le type d'application entrer / sortir des écrans principaux, assez pour que vous le placiez dans un endroit plus pratique à utiliser.
  • Alternativement, vous pouvez utiliser les touches fléchées pour déplacer l'application, fonctionne aussi bien, mais un peu plus lentement, pour comprendre où se trouvent les fenêtres et dans quelle direction elles se dirigent.
  • Une fois que vous avez la fenêtre dans un "bon endroit", où vous pouvez activement la dimensionner / la déplacer, cliquez sur le bouton principal de la souris ou, si vous utilisez la méthode du clavier, appuyez sur la touche "Entrée".
  • La fenêtre / l'application devrait maintenant être facile à déplacer / ajuster.
  • Répétez l'opération pour toutes les fenêtres / applications hors écran.
PeteG
la source
3
(1) Votre réponse semble suggérer que le PO n'a aucune idée de la façon de déplacer les fenêtres, ce qui est insultant et naïf. Le but de la question est de faire en sorte que l'ordinateur se souvienne de quelle fenêtre se trouvait sur quel moniteur et d'obtenir que l'ordinateur les restaure automatiquement, sans que l'utilisateur n'ait besoin de se rappeler où ils se trouvaient, puis de les reculer manuellement, un par un. (2) Mis à part le raccourci clavier Alt + Espace, votre réponse est essentiellement la même que le premier paragraphe de la réponse d' hydraxx . … (Suite)
Scott
(Suite)… (3) Pourquoi pensez-vous que la façon la plus «simple» de le faire est d'utiliser le clavier pour passer en «mode de déplacement», puis d'utiliser la souris pour faire le déplacement? Comme le dit hydraxx, vous pouvez le faire entièrement avec le clavier. Ou vous pouvez le faire entièrement avec la souris, en cliquant sur l'en-tête de la fenêtre et en le faisant glisser. Vous avez présenté la solution la plus complexe possible.
Scott
C'est en fait assez simple, la description est juste un peu délicate. Je n'obtiens pas l'élément de menu "Déplacer" lorsque j'essaye la barre des tâches, soit elle est obsolète, soit quelque chose sur mon système empêche de la voir. Je suis d'accord, à part l'alt-spc, ma réponse est essentiellement la même, mais j'ai montré ma méthode à des dizaines, et cela a toujours été dans le sens de "wow, c'était facile, je me demande pourquoi n'a pas essayé ça" . Ma réponse permet une solution uniquement pour keybd, comme indiqué. Il existe également des utilitaires pour cela, mais parfois les extensions de shell peuvent avoir des effets indésirables ...
PeteG
Je suis d'accord cependant, nous arrivons plus ou moins au même endroit, en utilisant la même construction dans le système d'exploitation.
PeteG
Vous pouvez également utiliser DisplayFusion pour ce faire. Il a un paramètre pour «accrocher» la tâche / fenêtre actuelle au moniteur actuel (probablement principal).
PeteG