Software de Windows para mover cualquier ventana entre múltiples monitores (pantallas) usando teclas PERO sin cambiar el tamaño de la ventana movida

Tengo una computadora multipantalla:

ingrese la descripción de la imagen aquí

y uso WindowPad para mover (organizar) cualquier ventana en la pantalla, y este programa también es capaz de moverlos entre monitores presionando WinKey+ Enter.

El problema es que la ventana movida se vuelve a escalar (redimensionar) al tamaño correspondiente del nuevo monitor, como puede ver en las dos imágenes a continuación. Desde una pantalla de 1280x1024:

ingrese la descripción de la imagen aquí

a una pantalla de 1920x1200:

ingrese la descripción de la imagen aquí

Tenga en cuenta la ventana de la consola Putty SSH redimensionada . Eso no es lo que quiero.

Mover ventanas sin usar el mouse es extremadamente útil para mí, pero no he sido capaz de encontrar una forma práctica de hacerlo sin cambiar el tamaño de esa ventana.
El menú emergente que tienen la mayoría de las ventanas no es válido, ya que, aun cuando puedo mover las ventanas, este movimiento es demasiado lento (prefiero usar el mouse en ese caso):

ingrese la descripción de la imagen aquí

WinKey++ no Shiftfunciona arrowen mi Windows 7 SP1, no sé por qué.

Las ideas son bienvenidas.

Sin volver a escalar, ¿cómo encajaría una ventana maximizada en la pantalla 1 cuando la mueva a la pantalla 6, o desea que la ventana abarque varios monitores?
Tienes razón, @Timmy, no lo pensé. Afortunadamente he encontrado la solución: he modificado el código fuente de WindowPad con éxito, y ahora mueve cualquier ventana sin reescalarla; y las ventanas maximizadas se mantienen maximizadas entre monitores. Estoy investigando para saber si mi solución debe publicarse aquí en SuperUser o en cualquier otro foro como StackOverFlow (siempre que sea una respuesta de programación). Solo dame unos días y publicaré aquí mi método.
Timmy, he agregado mi respuesta aquí. Se basa en la modificación de la fuente. Agregaré repositorios precompilados .exea los foros de AutoHotKey siempre que sepa cómo hacerlo. Supongo que SuperUser no tiene almacenamiento para archivos, así que no puedo pensar en otra forma.
¡Buen trabajo! Creo que dejar un código aquí está bien, siempre que haya instrucciones claras sobre cómo ejecutarlo. También puedes almacenarlo en Github

Respuestas (3)

No necesitas software especial

Win+Shift+Flecha izquierda: Mueve la ventana al monitor de la izquierda
Win+Shift+Flecha derecha: Mueve la ventana al monitor de la derecha

Además, Windows-P abre el selector de pantalla:

ingrese la descripción de la imagen aquí

Solo computadora es la opción predeterminada, y el nombre lo dice todo.
Duplicar clona su pantalla a una pantalla, monitor o proyector secundario conectado.
Extend expande el escritorio para que pueda dejar espacio para ventanas adicionales.
El proyector solo apaga la pantalla LCD de su computadora portátil y convierte el proyector en su monitor

Las flechas Win+Shift+Left/Right no funcionan en mi computadora. Y Windows+P no es válido, ya que tengo 6 pantallas. Se agregó información a la publicación original.

He modificado el código fuente original de WindowPad para que no cambie el tamaño de las ventanas al mover o cambiar de monitor.

Estos son los pasos:

  • Descargar desde el enlace de arriba y descomprimir.

  • Para deshabilitar el cambio de tamaño de las ventanas al mover editar \source\WindowPad.ahkpara cambiar (el Bloc de notas de Windows está bien):

    ; Move and resize.
    WinMove,,, newx, newy, neww, newh
    

a (tenga en cuenta los comentarios con ;carácter):

        ; Move and resize.
;        WinMove,,, newx, newy, neww, newh
        WinMove,,, newx, newy, w, h

y cambio:

wp_CalcNewSizeAndPosition:
    ; Calculate desired size.
    neww := restore_w != "" ? restore_w : Round(monWidth * widthFactor)
    newh := restore_h != "" ? restore_h : Round(monHeight * heightFactor)

a (mantenemos algunas líneas usando comentarios también):

wp_CalcNewSizeAndPosition:
    ; Calculate desired size.
;    neww := restore_w != "" ? restore_w : Round(monWidth * widthFactor)
;    newh := restore_h != "" ? restore_h : Round(monHeight * heightFactor)
    neww := w
    newh := h
  • Para deshabilitar el cambio de tamaño de las ventanas al cambiar la edición de pantalla \source\WindowPad.ahkpara cambiar:

; Calculate new size. if (wp_IsResizable()) { w := Round(w*(mdw/msw)) h := Round(h*(mdh/msh)) }

a:

    ; Calculate new size.
    if (wp_IsResizable()) {
;        w := Round(w*(mdw/msw))
;        h := Round(h*(mdh/msh))
        w := w
        h := h
    }

(un cambio bastante ridículo este, pero ayuda a entender el sentido de la modificación)

  • Ahora tiene su archivo .ahk que puede ejecutar si ha instalado AutoHotKey . O compílelo.exe usando el mismo programa ( Convert .ahk to .exe).

  • Y una mejora menor: estas líneas aquí impiden poner su propio icono en la bandeja (puede elegirlo al compilar el .ahkarchivo, pero no aparecerá allí):

.

if A_IsCompiled  ; Load icons from my custom WindowPad.exe.
{
; Default icon is 32x32, so doesn't look good in the tray.
Menu, Tray, Icon, %A_ScriptFullPath%, 2
}
else if (A_LineFile = A_ScriptFullPath)
{   ; Set the tray icon, but only if not included in some other script.
wp_SetTrayIcon(true)
; Use OnMessage to catch "Suspend Hotkeys" or "Pause Script"
; so the "disabled" icon can be used.
OnMessage(0x111, "WM_COMMAND")
}

así que coméntalos todos:

;    if A_IsCompiled  ; Load icons from my custom WindowPad.exe.
;    {
;        ; Default icon is 32x32, so doesn't look good in the tray.
;        Menu, Tray, Icon, %A_ScriptFullPath%, 2
;    }
;    else if (A_LineFile = A_ScriptFullPath)
;    {   ; Set the tray icon, but only if not included in some other script.
;        wp_SetTrayIcon(true)
;        ; Use OnMessage to catch "Suspend Hotkeys" or "Pause Script"
;        ; so the "disabled" icon can be used.
;        OnMessage(0x111, "WM_COMMAND")
;    }

y ahora puede compilar su .ahken uno .exeque tendrá su ícono preferido para el archivo y para el ícono de la bandeja (cada ícono de AutoHotKey en la bandeja tiene el mismo color verde Hsi no se especifica).

Mi compilación a .exe está funcionando fantástico. Ahora WindowPad es el mejor programa que he visto para mover y organizar ventanas, incluso con múltiples pantallas.

Por favor, informe de errores si los encuentra.

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í

Como dijo Jan, Windows 7 tiene algunos accesos directos nativos, que no uso porque me vinculo Wincon el botón izquierdo del mouse:

  • Win++ para Shiftmover Arrow Leftuna ventana al monitor izquierdo
  • Win++ para Shiftmover Arrow Rightuna ventana al monitor derecho

Al igual que usted, tengo 6 monitores, por lo que también necesito mover una ventana hacia abajo/arriba en mi caso entre los monitores 3 y 4 y entre los monitores 5 y 6:

ingrese la descripción de la imagen aquí

Vi que AHK podría tener algunas funciones para él, por ejemplo, WindowPad y WindowPadX , pero no tengo claro cómo configurar un atajo de teclado de este tipo, así que hice la pregunta aquí hace un tiempo: Mover una ventana al monitor inferior/superior con un acceso directo en Windows