¿Cómo restauro las ventanas a su pantalla original cuando vuelvo a conectar el monitor externo?

17

Imagina que haces esto ...

  1. Conecta tu monitor externo.
  2. Inicie algunas aplicaciones, algunas en cada monitor.
  3. Desconecte el monitor externo.
    • Todo bien porque todas las aplicaciones mueven el monitor principal.
  4. Vuelva a conectar el monitor externo.
    • Las aplicaciones permanecen en el monitor principal, pero sería muy bueno si volvieran al monitor externo en el que estaban antes.

Uso de Windows 10. ¿Hay alguna solución o solución alternativa para volver a mover las aplicaciones al monitor externo automáticamente?

joelsand
fuente
66
Es posible que desee echar un vistazo aquí - - superuser.com/q/240362/302907
Anaksunaman

Respuestas:

1

En el pasado, utilicé una herramienta Autohotkey llamada Windowpad para esto. Aparentemente, esto ahora ha sido reemplazado por una nueva versión mejorada llamada WindowPadX . Desplácese hacia abajo para ver el archivo Léame. La documentación completa está aquí .

Esto fue crucial para mí en varios monitores. Me encantó poder cambiar fácilmente una ventana entre los dos.

Puede configurar teclas de acceso rápido para lo siguiente (desde el archivo Léame):

Posibles acciones a configurar en teclas de acceso rápido

Acciones de la ventana

Multi-monitor

WPXA_MoveWindowToMonitor: mueve la ventana entre pantallas, preservando la posición y el tamaño relativos.

WPXA_MinimizeWindowsOnMonitor: minimiza todas las ventanas en la pantalla dada

WPXA_GatherWindowsOnMonitor: "Recopilar" ventanas en una pantalla específica.

WPXA_FillVirtualScreen: expanda la ventana para llenar la pantalla virtual (todos los monitores).

General

WPXA_MaximizeToggle: Maximiza o restaura la ventana.

WPXA_TopToggle: alterna "AlwaysOnTop" para la ventana dada

WPXA_RollToggle: Alterna "Roll / Unroll" para una ventana determinada WPXA_Move: mueve y cambia el tamaño de la ventana según un concepto de "pad".

WPXA_TileLast2Windows: mosaico activo y última ventana

Acciones del mouse multimonitor

WPXA_MoveMouseToMonitor: mueve el mouse al centro del monitor dado

WPXA_ClipCursorToCurrentMonitorToggle: alterna el mouse de recorte al monitor actual

WPXA_ClipCursorToMonitor: Recorta (restringe) el mouse al monitor dado

Acciones generales del mouse

WPXA_MouseLocator: Fácil de encontrar el mouse

Puede encontrarlo y otras herramientas entre una "Lista curada de impresionantes bibliotecas, distribuciones de bibliotecas, scripts, herramientas y recursos de AutoHotkey" aquí

ludinom
fuente
Esta lista de características sugiere que puede mover ventanas, pero ¿puede restaurar sus posiciones a un estado particular? ¿Qué significa "reunir" y "rodar / desenrollar según un concepto de almohadilla"?
TT--
@ TT-- "Reunir" reúne todas las ventanas en la pantalla actual. Esto es genial cuando, por ejemplo, quiero todas las ventanas excepto una o quizás algunas ventanas en una pantalla, y las ventanas en las que me estoy enfocando en mi monitor principal. "WPXA_MaximizeToggle: Maximizar o restaurar la ventana" debería alternar entre maximizado y original. "Roll / Unroll ..." oculta el área de trabajo de una ventana y solo muestra la barra de título, o pasa de un estado enrollado a la restauración de la ventana completa. Algo de esto es de memoria y puede que no sea exactamente correcto, pero si no, está bastante cerca.
ludinom
1
Gracias por los detalles adicionales. Parece MaximizeToggleque restauraría las ventanas a diferentes pantallas como estaba buscando. Terminé usando este 'DockWin' que específicamente hace eso (y nada más).
TT--
0

Algunas GPU tienen soporte para esto, como el panel de control de Nvidia, que le permite aplicar configuraciones para esta y muchas otras características.

O simplemente puede establecer la configuración de múltiples pantallas para reflejar el escritorio (en lugar de extender) en todos los monitores si eso funciona para usted.

CymaTechs
fuente
0

Los programas de Windows, denominados aplicación (lication) hoy en día, pueden guardar la posición de su ventana en un archivo o en el registro. Si se sabe dónde están estos datos, se pueden editar manualmente en el bloc de notas o el editor de registro. (entradas de registro incorrectas pueden causar inestabilidad de Windows o errores)

La creación de una forma automatizada debería ser fácil para alguien con un poco de habilidades de codificación y puede iniciarse según sea necesario (es decir, después de volver a conectar el monitor). Esto podría hacerse mediante un script de acción, un archivo .bat o una aplicación nativa.

Sin embargo, las aplicaciones en cuestión deberán cerrarse antes de esto para que se puedan implementar las posiciones deseadas.

Otra posibilidad con capacidad "en línea" (no es necesario reiniciar la aplicación) sería si Windows permite acceder a una ventana de un proceso por otro. Un enfoque podría ser las funciones SendMessage y WindowProc.

(No estoy seguro en este momento si esto solo se aplica a los subprocesos de la aplicación principal o también se puede hacer mediante subprocesos de otras aplicaciones ... y, por supuesto, requiere un buen conocimiento en programación para Windows)

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

Envía el mensaje especificado a una ventana o ventanas. [...] Si la ventana especificada fue creada por el hilo de llamada, el procedimiento de la ventana se llama inmediatamente como una subrutina. Si la ventana especificada fue creada por un hilo diferente, el sistema cambia a ese hilo y llama al procedimiento de ventana apropiado.

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

Enviado después de que se haya movido una ventana.

Una ventana recibe este mensaje a través de su función WindowProc.

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

Una función definida por la aplicación que procesa los mensajes enviados a una ventana. [...]

DigitalBlade969
fuente
0

Uso UltraMon (creo que es de código abierto) y, en determinadas circunstancias, puede hacerlo si está configurado correctamente.

Primero instale el programa UltraMon . Luego, cuando se esté ejecutando, digamos que ahora solo tiene un monitor conectado (no importa el número), cree un perfil:

  • Haga clic derecho en el icono en la bandeja del sistema
  • Haga clic con el botón izquierdo en Mostrar perfiles
  • Haga clic con el botón izquierdo en Mostrar nuevo perfil, asígnele un nombre (por ejemplo, lo que hago es darle un número que refleje cuántos monitores está utilizando, como el Perfil 1).
  • Ahora tienes uno. Genial, puedes crear un fondo de pantalla para cada monitor, salvapantallas, etc. Obtén todos tus íconos de la manera que quieras.
  • Haga clic derecho en el icono de la bandeja del sistema.
  • Clic izquierdo Iconos de escritorio Izquierda Guardar posiciones

Ahora conecte / desconecte otras pantallas. Cree un perfil para esta nueva configuración. Tal vez lo llame "Perfil 7" por tener 7 monitores conectados. Ahora guarde las posiciones de los iconos cuando lo desee.

Puede usar fácilmente esta herramienta para alternar entre los perfiles. Puede colocar fácilmente accesos directos de escritorio para cambiar rápidamente entre perfiles.

Por último, en las opciones avanzadas, puede decirle a UltraMon que haga esto todo el tiempo, automáticamente, pero eso puede requerir una versión paga (tarifa única de por vida).

Compré UltraMon en 2009 por $ 19.99 y valió la pena.

PyTis
fuente
3
¿Puede explicar el "cómo", las circunstancias en las que funciona y cómo configurarlo correctamente?
Fixer1234
Si señor / mam. Primero instale el programa UltraMon. www.ultramon.com Entonces, cuando se está ejecutando, digamos que ahora solo tiene 1 monitor conectado (no importa el número) cree un perfil: Haga clic con el botón derecho en el icono en la bandeja del sistema Haga clic con el botón izquierdo Perfiles de pantalla Haga clic con el botón izquierdo Nuevo perfil de pantalla Nómbrelo (esto es lo que hago) por la cantidad de monitores que está utilizando, como Perfil 1. Ahora tiene uno. Genial, puedes crear un fondo de pantalla para cada monitor, salvapantallas, etc. Obtén todos tus íconos de la manera que quieras. Haga clic derecho en el icono de la bandeja del sistema. Haga clic con el
botón
Continuando, ahora conecte / desconecte otras pantallas. Cree un perfil para esta nueva configuración. Tal vez lo llame "Perfil 7" por tener 7 monitores conectados. Ahora guarde las posiciones de los iconos cuando lo desee. Puede usar fácilmente esta herramienta para alternar entre los perfiles. Puede colocar fácilmente accesos directos de escritorio para cambiar rápidamente entre perfiles. Por último, en las opciones avanzadas, puede decirle a UltraMon que haga esto todo el tiempo, automáticamente, pero eso puede ser una opción paga (tarifa única de por vida). Compré UltraMon en 2009 por 19,99 y valió la pena.
PyTis
Esto no parece responder a la pregunta: la pregunta era sobre la restauración de las ventanas de la aplicación en cada monitor, esto aborda los iconos del escritorio (y cosas relacionadas). Parece una herramienta útil, pero no relevante.
Bobson
0

Win Redock ha funcionado mejor para mí. Redock es automático: guarda y restaura ventanas sin ninguna intervención. ¡Magia! ¡También es de código abierto!

BT
fuente
-1

Si presiona Mayús + clic con el botón derecho en el icono en la barra de tareas, luego presione mover, puede usar las teclas de flecha para mover la ventana y la tecla Intro para establecer la posición. Tuve el mismo problema hace unos años.

Otra solución es usar DisplayFusion para ajustar la ventana al monitor más cercano (el único conectado) con la tecla de acceso rápido "Mover todas las ventanas al monitor actual".

hydraxx
fuente
1
¿Por qué tan complejo? Si solo quiere pasar a otro monitor, simplemente use windows + shift + izquierda / derecha
phuclv
-1

No hay ninguna solución para hacer esto, debe usar la tecla de Windows en el teclado con las flechas izquierda y derecha, para moverse entre pantallas, o la tecla de Windows + Mayús + izquierda / derecha para moverse a partes de la pantalla.

Windows key + P también ayuda en situaciones de monitores múltiples para ayudar con la duplicación / extensión, etc.

Pero, de nuevo, una vez que desconecta la pantalla, si esas ventanas tenían metadatos, desaparecen después.

Píxel
fuente
En realidad, hay múltiples soluciones. Uno o dos que mencionaste. Cambiar la resolución es otra.
Hennes
-2

Puedes hacer esto, si eres un viejo "chico del teclado" como yo; -] Me di cuenta de esto hace mucho tiempo, ya que he sido multimono desde principios de los 90, ha sido un problema de mucho tiempo, entre un poco IU diferentes.

La forma más fácil que he encontrado para aplicaciones fuera de pantalla / borde es:

  • Simplemente seleccione la aplicación, a través de la barra de tareas o Alt-Tab
  • Mantenga presionada la tecla Alt y presione la barra espaciadora ( Alt- Spacebar)
  • Verá un menú, en su (s) pantalla (s) principal (es), una de las cuales será "Mover", con la M subrayada.
  • Como tal, presione la tecla "M", mientras el menú todavía está en pantalla
  • En este punto, no apunte / haga clic / etc, ya que ahora está "reubicando" la ventana activa (la que está fuera de la pantalla).
  • Puede arrastrar el mouse ( NO SE APLICA EL BOTÓN POR AHORA ), y debería ver que la aplicación entra / sale de las pantallas principales, lo suficiente como para colocarla en un lugar más conveniente para su uso.
  • Alternativamente, puede usar las teclas de flecha para mover la aplicación, funciona igual de bien, pero un poco más lento, para descubrir dónde está la ventana y hacia dónde se dirige.
  • Una vez que tenga la ventana en un "buen lugar", donde pueda moverla / moverla activamente, haga clic en el botón principal del mouse o, si usa el método del teclado, presione la tecla "enter".
  • La ventana / aplicación ahora debería ser fácil de mover / ajustar.
  • Repita para todas las ventanas / aplicaciones que están fuera de la pantalla.
PeteG
fuente
3
(1) Su respuesta parece estar sugiriendo que el OP no tiene idea de cómo mover ventanas, lo cual es insultante e ingenuo. El punto central de la pregunta es hacer que la computadora recuerde qué ventana estaba en qué monitor y que la computadora los restaure automáticamente, sin que el usuario necesite recordar dónde estaban y luego moverlos manualmente, uno a la vez. (2) Aparte del atajo de teclado Alt + Space, su respuesta es esencialmente la misma que el primer párrafo de la respuesta de hydraxx . … (Continúa)
Scott,
(Continúa) ... (3) ¿Por qué crees que la forma "más fácil" de hacerlo es usar el teclado para entrar en "modo de movimiento" y luego usar el mouse para hacer el movimiento? Como dice hydraxx, puedes hacerlo completamente con el teclado. O puede hacerlo completamente con el mouse, haciendo clic en el encabezado de la ventana y arrastrando. Has presentado la solución más compleja posible.
Scott
En realidad es bastante simple, la descripción es un poco complicada. No obtengo el elemento de menú "Mover" cuando intento hacer la barra de tareas, ya sea que está en desuso o que algo en mi sistema impide verlo. Estoy de acuerdo, aparte del alt-spc, mi respuesta es esencialmente la misma, pero he mostrado mi método a docenas, y siempre ha estado en la línea de "wow, eso fue fácil, me pregunto por qué no lo intenté" . Mi respuesta permite una solución solo con keybd, como se señaló. También hay utilidades para esto, pero a veces las extensiones de shell pueden tener efectos no deseados ...
PeteG
Sin embargo, estoy de acuerdo, estamos más o menos llegando al mismo lugar, usando la misma construcción en el sistema operativo.
PeteG
También puede usar DisplayFusion para hacer esto. Tiene una configuración para "ajustar" la tarea / ventana actual al monitor actual (probablemente principal).
PeteG