1

У меня обычно два экземпляра моего веб-браузера работают рядом на моем экране. Когда я читаю новости или статью на иностранном языке, они переводятся в одном браузере, покрывающем половину экрана, а оригинальная статья, запущенная в другом окне, покрывает другую половину экрана.

Теперь я хочу иметь возможность прокручивать две страницы одновременно на двух разных экземплярах одного и того же браузера, чтобы сравнивать переведенные и оригинальные тексты. Я либо использую Firefox или Chrome. Есть ли способ заставить работать одновременно функцию прокрутки вниз?

1 ответ1

1

Это можно сделать с помощью AutoHotkey magic, используя следующий скрипт, который должен быть сохранен в файле .ahk для выполнения. Дважды щелкните файл, чтобы запустить скрипт, остановите его, щелкнув правой кнопкой мыши на панели задач на зеленом значке "H" и выберите "Выход".

Скрипт написан для согласованной прокрутки двух окон. Вы должны выбрать сначала окна для прокрутки, включая их одно за другим. Скрипт дублирует следующие клавиши для скоординированной прокрутки:«Вверх», «Вниз», «Вверх», «Вниз».

Скрипт использует несколько горячих клавиш для инициализации. Вы можете отредактировать его, чтобы использовать другие горячие клавиши или удалить ненужные. Те, которые я выбрал, описаны ниже.

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

Вот сценарий. Это сработало в моих тестах.

#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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .