¿Cómo mover ventanas que se abren fuera de la pantalla?

272

Tengo una configuración de monitor dual, y recientemente jugué con la configuración de posicionamiento, y algunas de mis aplicaciones de ventana única hacen el favor de preservar dónde se cerraron por última vez y abrirse en la misma posición más tarde. ¡Desafortunadamente, eso ahora los coloca fuera del área visible de mis pantallas!

¿Hay alguna forma de forzar una ventana en particular en el área visible?

Matthew Scharley
fuente
2
¡Esto sigue siendo un problema en Windows 10! Tengo 3 monitores y solo uso uno 'aquí y allá' ... cuando lo hago, luego dejo de usarlo, algunos programas abiertos se abren por defecto. Tengo que hacer la flecha win + left para eventualmente volver al monitor principal.
1
Sigue siendo un problema siete años después ...
Jack Wasey
Posible duplicado de superuser.com/questions/1206086/...
SDsolar

Respuestas:

194

Para usuarios de Windows 7 y posteriores: Windows Key+ Shift+ o moverá la ventana seleccionada al monitor en esa dirección.

andho
fuente
2
Gracias por esto, tenía una aplicación con una ventana no estándar, por lo que la técnica Alt-Space no funcionó (Foxit Reader en Windows).
Bdoserror
3
También es de destacar la ganancia + izquierda / derecha / arriba, que coloca la ventana que cubre la mitad del monitor activo (a cada lado) o la maximiza. Esto debería funcionar en todas las condiciones que he encontrado, y también son teclas muy útiles (excepto cuando sigo presionándolas cuando trato de presionar fn + teclas de flecha: P).
Kat
11
Esto no hace nada en mi Windows 10 Pro x64
Mike 'Pomax' Kamermans
3
@ Mike'Pomax'Kamermans: Divertido. Esto es lo único que funciona en mi computadora portátil Windows 10 Pro x64 para mover una ventana de Emacs que se abre fuera de la pantalla.
Mike Sherrill 'Cat Recall'
2
Wow, no puedo creer que nunca supiera sobre esto. Alguien todavía encuentra esto útil 8 años después :)
veryRandomMe
433

Yo uso este enfoque:

  • Use Alt+ Tabpara cambiar a la aplicación fuera de la pantalla.
  • Presione Alt+ SPACEpara que aparezca el menú del sistema (no lo verá porque está fuera de la pantalla)
  • Presione Rpara seleccionar la opción de menú "Restaurar" para asegurarse de que las ventanas no estén maximizadas (no puede moverlas si está maximizada)
  • Presione Alt+ SPACEnuevamente, luego Mpara seleccionar la opción de menú "Mover".
  • Presione una de las teclas de flecha para iniciar el movimiento.
  • Ahora solo usa el mouse para colocar la ventana donde quieras.

Si está utilizando una versión de Windows que no está en inglés, las opciones de menú "R" y "M" probablemente serán diferentes.

Terje Mikal
fuente
8
Muchas gracias "Terje Mikal" por su solución, eso me salvó. Pero dado que el problema solo ocurre desde que Windows 7 eliminó la buena solución anterior (haga clic con el botón derecho en el botón de la aplicación en la barra de tareas), hay una solución aún mejor, publicada por "kmote" el 18 de junio de 2013 a las 17:45 en "Emthigious" 10 de octubre de 2010, 08:50: «En Windows 7, debe hacer MAYÚS-clic derecho en el botón de la barra de tareas»
Michel Merlin,
1
Intenté cada dos pasos, pero iniciar el movimiento con las teclas de flecha es lo que finalmente lo hizo ... wow. ¡Y estaba tan cerca de reinstalar la aplicación!
Philip
1
Con la aplicación con la que estoy tratando, Restaurar está atenuado, pero Maximizar funciona en esa fase, y luego no se requiere el movimiento. ¡Maximiza para ganar!
Brian Bulkowski
Hago lo anterior, pero el siguiente combo también funciona para mí, Alt + Tab, Alt + Espacio, M, luego presiono Esc, esto también parece funcionar
Mz A
Es casi 2020, todavía se trata de esto.
Mert
14

Para Windows 10 para usar el viejo mover la ventana con el truco de las teclas del cursor, debe Shiftpresionar la tecla cuando abra el menú contextual desde la barra de tareas.

ingrese la descripción de la imagen aquí

Información de Cómo friki

Brad Patton
fuente
3
En las versiones actuales de Windows 10, también puede pasar el mouse sobre la barra de tareas y mantenerla presionada por un segundo, lo que hará que aparezca una vista en miniatura de la ventana. Al hacer clic con el botón derecho en la miniatura, aparece el menú contextual "antiguo" como un clic de desplazamiento.
Coderer
1
@Coderer: El comentario es realmente útil, no lo sabía. Pensé que lo eliminaron por completo.
Oak_3260548
¡Me había olvidado por completo de esto! Creo que también puede hacer clic con el botón derecho del mouse si el botón de la barra de tareas representa una ventana. Obtiene un menú contextual diferente si hay más de una ventana para la aplicación en cuestión.
Coderer
12

Puede hacer clic con el botón derecho en el botón del programa en la barra de tareas y luego hacer clic en "Mover". Ahora puede usar los botones de flecha en su teclado para mover la ventana donde puede verla. Requiere un poco de violín, a veces las ventanas se "atascan" en los bordes del monitor. También puede intentar usar el mouse, pero el teclado es un poco más confiable si aún no puede ver la ventana ;-)

Emigioso
fuente
2
No sabía sobre el teclado, pero no puedes usar el mouse si están fuera de la pantalla, ya lo intenté.
Matthew Scharley
2
Debería poder usar las teclas de flecha incluso si están fuera de la pantalla, a menos que haya algo no estándar en su sistema que lo impida. Esta siempre ha sido mi respuesta estándar para las personas que experimentan este problema.
music2myear
99
Además, después de presionar al menos una tecla de flecha, la ventana se "adjunta" al mouse y puede moverla con el mouse (¡sin hacer clic!) Este enfoque de una tecla más el mouse suele ser más rápido que usar solo teclas.
Daniel Rikowski
8
En Windows 7, debe hacer SHIFT y hacer clic con el botón derecho en el botón de la barra de tareas.
kmote
Esta es la única solución que funcionó para mí ...
sebagomez
8

Antes de que existiera la barra de tareas, solía solucionar este problema Alt+Spacepara abrir el menú de la ventana, luego Mpara la función Mover. Las teclas de flecha le permitirían mover la ventana de nuevo a la pantalla.

Greg Hewgill
fuente
+1 con la advertencia de que no se moverán si se maximizan a una pantalla, esto puede ser un problema si las ventanas no están simplemente "más allá de los límites" sino que están en una pantalla ficticia. Pueden ser para el OP ya que la maximización debería haber cubierto la totalidad de la resolución de la pantalla ocupada.
mckenzm
8

Otra forma rápida es hacer clic en la barra de tareas y seleccionar Cascade Windows.

T. Kaltnekar
fuente
44
Esta es una forma bastante fea de hacerlo porque afectará a todas mis ventanas abiertas (y generalmente tengo al menos un navegador abierto, si no media docena más)
Matthew Scharley
1
Es cierto, sin embargo, es más rápido. También puede cerrar la ventana que estaba fuera de la pantalla y usar deshacer en cascada después de eso, lo que restaurará las posiciones de las ventanas. No sé si también restaurará la posición de la ventana que estaba fuera de la pantalla a esa posición ya que no puedo probarlo (solo tengo un monitor).
T. Kaltnekar
5

Me encontré con este problema, y ​​absolutamente nada funcionó para mí. Así que entré al Administrador de tareas e hice clic derecho en el programa que estaba fuera de la pantalla. Cambiar a no funcionó, ni lo trajo al frente. Para tener en cuenta, esta era una ventana estática, por lo que maximizar no estaba disponible a través de la barra de tareas. ¡Pero puede maximizar a través del Administrador de tareas, y eso lo trae a su pantalla principal! Desde allí puedes hacer lo que necesites con la ventana. :)

León
fuente
Gracias por esta respuesta Hacer clic derecho y Maximizar en el Administrador de tareas fue lo único que funcionó para mí.
un codificador
5

Editar: descontinuado según los comentarios

Para resolver rápidamente este problema en el futuro y colocar las aplicaciones en la pantalla dual, puedo recomendar Winsplit Revolution . Reduce la resolución de este problema simplemente presionando Ctrl-Alt y una tecla numérica para volver a colocar la ventana exactamente donde la desea.

Andy
fuente
desafortunadamente ya no es gratis
Charbel
Sí, se ve bien, pero tengo una política estricta de no pagar a menos que quiera hacerlo. Como para Lastpass o Acronis True Image. Y con mi horario, es muy posible que pasen más de 30 días antes de que el problema vuelva a surgir para que los períodos de prueba no funcionen para mí.
SDsolar
1
Desafortunadamente, WinSplit Revolution ha sido descontinuado, y no hay nuevas actualizaciones por venir. "Reemplazado por" MaxTo ", actualmente USD $ 19
TT--
1
WinSplit-Revolution es freeware y aún está disponible para descargar si lo busca . La última versión fue 11.04, lanzada en 2011. Funciona en Windows 10. La fuente v9.02 modificada está disponible en GitHub como WinSplit-Reloaded . Es un producto asombroso.
Ben
@Ben, gracias por los enlaces. Fui al enlace en la respuesta y cité esa información. (Ahora la página dice "WinSplit Revolution ya no está disponible, pero ofrecemos una excelente alternativa"). El archivo Léame en esa bifurcación de GitHub es informativo y menciona específicamente "la versión 9.02, publicada públicamente en 2009".
TT--
3

Utilizo una pequeña herramienta ingeniosa llamada Shove-it que simplemente comprueba si alguna ventana está fuera del borde de la pantalla y la empuja nuevamente a la pantalla. Es un software antiguo (y la página de inicio lo demuestra) pero funciona en todas las versiones de Windows.

Torben Gundtofte-Bruun
fuente
El enlace ahora está muerto :-(
danio
:-( por otro lado, esta solución puede haber sobrevivido a sí misma. ¿Alguna vez ha sucedido? Han pasado años desde la última vez que lo necesité.
Torben Gundtofte-Bruun
El instalador solo se bloquea para mí (en Windows 7).
mhenry1384
@ mhenry1384 bueno, tiene 14 años (y 32 bits), realmente no podemos esperar que funcione con nuevas versiones (¿64 bits?) .....
Torben Gundtofte-Bruun
3

Me encontré con este problema con Git GUI en Windows 7, que se basa en Tk y, como tal, tiende a fallar de manera extraña en Windows. Intenté presionar Alt-Space y usar el comando de movimiento para volverlo a ver, pero parecía atascado. Maximizarlo lo devolvería, pero si lo volviera a poner en modo ventana, desaparecería nuevamente.

Lo que hice fue maximizarlo, tomar la barra de título y arrastrarlo hacia un lado de la pantalla para que Aero Snap lo dimensionara a la mitad del tamaño de la pantalla y lo pusiera en modo de ventana. Después de eso, lo arrastré lejos del lado de la pantalla y recuperé el control.

no usado
fuente
Muchas respuestas más altamente votadas, pero ninguna funcionó para mí. Esto hizo
Dan Nissenbaum
Git GUI también me trajo aquí, pero lo resolví con la combinación Shift-RightClick (en el icono de la barra de tareas), Mover, flecha, luego mouse (para colocar la ventana donde debería estar). La solución de Emthigious / Brad Patton funciona.
mcalex
1

Tuve el mismo problema con winamp. La única solución (insatisfactoria) que encontré hasta ahora: cambie la resolución de la pantalla a una diferente y viceversa

Thomas

Thomas
fuente
1

Podrías usar NIRSOFT WinLister. Noté que el método "Mover" no está disponible en Windows 7 cuando está usando el tema clásico, y varios otros métodos fallaron, así que publico mi alternativa "SI todo lo demás falla".

  1. Descargue la aplicación WinLister aquí .

  2. Ejecute WinLister como administrador y seleccione la ventana que desea volver a mover en la pantalla. No ejecutarse como administrador no le dará a la aplicación la capacidad de mover las ventanas por usted.

  3. Haga clic derecho y seleccione "Centrar las ventanas seleccionadas" y listo.

Capturas de pantalla aquí .

usuario199343
fuente
1
Gran consejo: esta es la única solución que me funcionó para las herramientas eléctricas MS TFS ya que Alt-Space solo abrió el menú de la ventana del explorador de Windows, no la subventana que estaba fuera de la pantalla.
danio
1

En algunos casos, a pesar de tener varias pantallas en la ubicación remota, es posible que no tenga acceso a ellas desde su ubicación. Los comandos de teclado no funcionarán porque se te ha bloqueado cualquier vista que no esté en tu pantalla.

En este caso, si puede abrir instancias adicionales de la aplicación, hágalo. Es probable que las primeras instancias aparezcan en la barra de tareas como más ventanas fantasmas. Sigue haciendo esto. Eventualmente, comenzarán a poblar la vista principal. Luego use el icono de la barra de tareas para hacer clic derecho y cerrar las instancias fuera de la pantalla. Una vez que NO haya instancias fuera de la pantalla abiertas, cierre las instancias en la pantalla principal. La próxima vez que abra esa aplicación, aparecerá en la pantalla principal y no "fuera de cámara".

Greg Mayer
fuente
1
¿A qué se refiere: “ubicación remota”, “su ubicación”, etc.? ¿Por qué el usuario quedaría "bloqueado de cualquier vista que no esté en su pantalla"?
Scott
Se refiere a VM, Citrix, RDP, etc. No va a leer múltiples 4K en su teléfono. Este es también el caso de las pantallas ficticias. Algunos usuarios corporativos colocan un dongle HDMI para estacionar elementos de escritorio obligatorios fuera de la vista. Volver a 1 pantalla real los mueve hacia atrás.
mckenzm
1

Seleccione la ventana (por ejemplo, usando Alt+ Tab). Luego mantenga presionado Alt+ F7y mueva la ventana con las teclas de flecha nuevamente a la vista. Hecho.

A veces es difícil saber a ciegas dónde se encuentra la ventana oculta (y, por lo tanto, cómo moverla hacia la pantalla). Las animaciones durante la selección de la ventana pueden ser útiles. Debido a mi configuración (ocasionalmente uso una segunda pantalla en la parte superior de la pantalla de mi computadora portátil), las ventanas que aparecen fuera de la pantalla generalmente están debajo. Mantener Alt+ F7+ Uppor lo tanto los pone a la vista.

Georg Jung
fuente
1

Para cualquiera que esté familiarizado con PowerShell, intente esto:

  • Copie y pegue el siguiente código en una sesión de PowerShell ISE.
  • Hit Run
  • Presione ALT + TAB / lo que sea para activar la ventana fuera de la pantalla
  • Espere unos momentos (5 segundos después de presionar RUN en el script)
  • La ventana debería aparecer ahora.

Si la ventana es una ventana principal, se moverá a la esquina superior izquierda de la pantalla.

Si la ventana es una ventana secundaria de otro programa, su esquina superior izquierda se alineará con la esquina superior izquierda de su ventana principal.

Add-Type @"
    using System;
    using System.Runtime.InteropServices;

    // https://msdn.microsoft.com/en-us/library/windows/desktop/dd162897(v=vs.85).aspx
    public struct RECT 
    {
        public long left;
        public long top;
        public long right;
        public long bottom;
    }

    public class User32WinApi 
    {

        // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633505(v=vs.85).aspx
        /*
            Gets the handle of the in-focus window
            NB: In some scenarios this can be NULL; so code needed to handle such an event
        */
        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();

        // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx
        /*
            top & left are always 0 (i.e. since the rectangle is relative to the window itself)
            bottom & right equal the windows hieght and width, respectively.
        */
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);

        // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633534(v=vs.85).aspx
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

    }

"@
$repaint = $true 
$windowSize = New-Object RECT

"Quick; get the window you're after in focus; you have 5 seconds..."
Start-Sleep -Seconds 5 #allow 5 seconds for the user to get the window they're after in focus (e.g. using ALT+TAB / whatever)
$activeWindow = [User32WinApi]::GetForegroundWindow()
if ($activeWindow) {
    if([User32WinApi]::GetClientRect($activeWindow, [ref]$windowSize)) {
        if ([User32WinApi]::MoveWindow($activeWindow, 0, 0, $windowSize.right, $windowSize.bottom, $repaint)) {
            "Window moved successfully (hope you agree!)"
        } else {
            Write-Warning "Failed to move the active window"
        }
    } else {
        Write-Warning "Failed to get size of the active window"    
    }
} else {
    Write-Warning "No active window found"    
}

Código original aquí: https://gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/

JohnLBevan
fuente
0

coloque el cursor en la barra de tareas ... haga clic derecho en seleccionar mostrar ventana de lado a lado ... traerá la ventana a la pantalla ... y finalmente traerá nuevamente el cursor en la barra de tareas haga clic derecho en seleccionar deshacer mostrar ventana de lado a lado ...

ravi21
fuente
0

También puede usar UltraMon (no libre, Windows, GUI) para configurar un atajo de teclado para mover una ventana al monitor siguiente o anterior.

ingrese la descripción de la imagen aquí

Franck Dernoncourt
fuente
0

Desde Mover una ventana al monitor inferior / superior con un acceso directo en Windows por Tymric :

Escribí un guión AHK.

Uso:

Win+ Alt+Arrow : Mueve la ventana activa al monitor cuya dirección se indica con la flecha. Tenga en cuenta que esto puede hacer que su ventana se mueva fuera de la pantalla si intenta subir desde el monitor 2 o directamente desde el monitor 3 en su configuración. Lo actualizaré en el futuro.

Win+ Alt+ Number: Mueve la ventana activa al número de monitor dado

#Persistent

SysGet, MonitorCount, MonitorCount


#!Up::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYneg%
  return
#!Down::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYpos%
  return
#!Left::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXneg%, %yPos%
  return
#!Right::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXpos%, %yPos%
  return

#!1::
  GoSub CalculateDisplacement
  WinMove, A, , %xPosOn1%, %yPosOn1%
  return

#!2::
  if (MonitorCount > 1) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn2%, %yPosOn2%
  }
  return

#!3::
  if (MonitorCount > 2) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn3%, %yPosOn3%
  }
  return

#!4::
  if (MonitorCount > 3) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn4%, %yPosOn4%
  }
  return

#!5::
  if (MonitorCount > 4) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn5%, %yPosOn5%
  }
  return

#!6::
  if (MonitorCount > 5) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn6%, %yPosOn6%
  }
  return

#!7::
  if (MonitorCount > 6) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn7%, %yPosOn7%
  }
  return

#!8::
  if (MonitorCount > 7) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn8%, %yPosOn8%
  }
  return

#!9::
  if (MonitorCount > 8) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn9%, %yPosOn9%
  }
  return


CalculateDisplacement:
  WinGetPos, xPos, yPos, , , A
  Loop, %MonitorCount% {
    SysGet, MonitorDimension, Monitor, %A_Index%
    if (xPos > MonitorDimensionLeft and xPos < MonitorDimensionRight and yPos < MonitorDimensionBottom and yPos > MonitorDimensionTop) {
      currentMonitor = %A_Index%
    }
  }
  SysGet, thisMonitor, Monitor, %currentMonitor%
  displaceXpos := xPos + thisMonitorRight - thisMonitorLeft
  displaceYpos := yPos + thisMonitorTop - thisMonitorBottom
  displaceXneg := xPos - thisMonitorRight + thisMonitorLeft
  displaceYneg := yPos - thisMonitorTop + thisMonitorBottom
  Loop, %MonitorCount% {
    SysGet, nextMonitor, Monitor, %A_Index%
    xPosOn%A_Index% := xPos - thisMonitorLeft + nextMonitorLeft
    yPosOn%A_Index% := yPos - thisMonitorTop + nextMonitorTop
  }
  return
Franck Dernoncourt
fuente
0

He escrito una herramienta llamada Borderline que automáticamente moverá las ventanas fuera de la pantalla de nuevo a la pantalla cuando se ejecute. Debe ejecutarlo cuando lo necesite (funciona mejor si le asigna un atajo de teclado o lo coloca en el menú de inicio), pero eso también significa que no siempre se ejecuta en segundo plano.

jamesdlin
fuente
0

A veces, esto resuelto:

  • Haga clic en WinKey+P
  • Elija Extendu otra opción, y todas las ventanas serán en cascada. Mueva la ventana deseada a la pantalla principal.
T.Todua
fuente
-1

¿Cómo mover ventanas que se abren fuera de la pantalla?

Temporalmente baje la resolución de la pantalla, tome la barra superior con el mouse y mueva el centro. Espere a que el sistema restaure automáticamente la resolución.

  1. DeskTop -> Resolución de pantalla
  2. Seleccione su monitor, cambie a una resolución más baja de la configuración actual.
  3. El sistema muestra la nueva resolución, le pregunta si desea mantener o revertir en 30 segundos.
  4. Dentro de los 30 segundos, tome la ventana ubicada y colóquela en el centro.
  5. Espere a que el tiempo de espera se revierta automáticamente.

Ventana movida ...

Russ
fuente