Isso pode ser feito com a magia AutoHotkey usando o
seguinte script, que deve ser armazenado em um arquivo .ahk
para execução.
Dê um duplo clique no arquivo para iniciar o script, pare com o botão direito do mouse na barra de ferramentas
no ícone verde "H" e escolha Sair.
O script é escrito para a rolagem coordenada de duas janelas. Você tem que selecionar primeiro as janelas para rolar incluindo-as uma a uma. O script duplica as seguintes chaves para rolagem coordenada: Roda para cima, roda para baixo, Page Up, Page Down.
O script usa algumas teclas de atalho para inicialização. Você pode editá-lo para usar algumas outras teclas de atalho ou remover as desnecessárias. Os que escolhi estão descritos abaixo.
F1 : Starts a new group of windows
F2 : Includes the currently active window in the group
F3 : Shows the windows in the group even if minimized
F4 : Closes all windows in the group
Aqui está o script. Funcionou nos meus testes.
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#SingleInstance Force
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
Process, Priority, , High
SetWinDelay 0
g = 1 ; Used to generate unique group names
; Reload script to reinitialize all variables, since there is no delete group
f1::
Reload
return
; Add currently active window to the group
f2::
WinGet, active_id, ID, A
GroupAdd, grpname, ahk_id %active_id%
return
; Restore all windows in the group to be visible
f3::WinRestore, ahk_group grpname
return
; Close all windows in the group
f4::GroupClose, grpname , A
Reload
return
; This intercepts scroll keys on the active window and duplicates them on the other window
#IfWinActive ahk_group grpname
WheelUp::
WheelDown::
PgUp::
PgDn::
MouseGetPos, mX, mY ; remember mouse position in current window
Send {%A_ThisHotKey%}
GroupActivate grpname ; activate the next window of this group
If (A_ThisHotKey = "WheelUp" || A_ThisHotKey = "WheelDown")
MouseMove, 200, 200, 0 ; move the mouse over the currently active window
Send {%A_ThisHotKey%}
GroupActivate grpname ; Activate previous window
MouseMove, mX, mY, 0 ; Restore its mouse position
return