Estoy buscando un programa que me permita cambiar dos ventanas entre dos monitores con clics del mouse y/o teclado con la menor cantidad de clics y/o pulsaciones de teclas posibles.
Por ejemplo, el programa A está en el monitor 1 y el programa B está en el monitor 2. Si quiero cambiar la ubicación del programa A y el programa B, solo quiero tener que hacer clic con el botón izquierdo en el programa A y luego hacer clic con el botón izquierdo en el programa B , luego presione algún atajo de teclado para que cambien.
Debe tener las siguientes características:
Este tipo de tarea ad-hoc tiende a resolverse mejor mediante un marco de automatización genérico para proporcionar bloques de construcción básicos (por ejemplo, comandos para recuperar geometrías de ventana y mover ventanas), con un pequeño script que implementa su requisito específico.
En Windows, AutoHotkey es un entorno de secuencias de comandos de automatización de escritorio de propósito general para Windows. Es de código abierto. El lenguaje de secuencias de comandos hace que Basic no se vea tan mal, pero hace el trabajo.
Aquí hay un script que cambia la posición de dos ventanas. Funciona de la manera que usted describe: haga clic en una ventana, cambie a otra ventana y estas dos ventanas se transpondrán. El script vincula la acción al atajo de teclado Ctrl++ ; cambie la línea para elegir la tecla de acceso rápido que prefiera. Después de instalar AutoHotkey, guarde este script en un archivo llamado (el nombre no es significativo, solo la extensión lo es) y agréguelo a sus scripts de inicio (o ejecútelo una vez para probar; hay un icono en la barra de tareas con un comando de salida ).AltF^!f::
flip-windows.ahk
;; Switch the position and size of the active window with the one immediately after in
;; top-to-bottom z-order.
;; This action is bound to the hotkey Ctrl+Alt+F.
#NoEnv
#SingleInstance force
;; Bind the action to Ctrl+Alt+F
^!f::
;; Set id1 to the window ID of the active window
WinGet, id1, ID, A
;; Set id2 to the window ID of the next active window (the one that Alt+Tab would
;; switch to). To do this, iterate over the active windows in top-to-bottom order.
;; This order is: first permanently-raised windows, then the active window, then
;; the next active window.
WinGet, ids, List
Loop, %ids%
{
current := ids%A_Index%
IfNotEqual, current, %id1%, Continue
next_index := A_Index + 1
id2 := ids%next_index%
Break
}
;; Retrieve the coordinates of the two windows
WinGetPos, x1, y1, w1, h1, ahk_id %id1%
WinGetPos, x2, y2, w2, h2, ahk_id %id2%
;WinGetTitle title1, ahk_id %id1%
;WinGetTitle title2, ahk_id %id2%
;MsgBox %id1% "%title1%" %w1%x%h1%+%x1%+%y1% <-> %id2% "%title2%" %w2%x%h2%+%x2%+%y2%
;; Move the two windows to each other's coordinates
WinMove, ahk_id %id1%, , %x2%, %y2%, %w2%, %h2%
WinMove, ahk_id %id2%, , %x1%, %y1%, %w1%, %h1%
Return
Si solo desea enviar una ventana a otro monitor, Windows 7 tiene esto incorporado ( Win+ Shift+ Left, Win++ Shift) Right, pero si eso no es exactamente lo que desea, puede crear algo mejor con AHK (algunos ejemplos de secuencias de comandos AHK puede inspirarte, por ejemplo, 1 ).
Miguel
franck dernoncourt
Flyk