Mir*_*a M 6 pdf autohotkey adobe-acrobat
我正在尝试制作一个同时滚动所有打开的 PDF 文档的脚本。问题是,除非我专门命名每个必须滚动的窗口并将操作发送给它,否则我无法让它工作。此外,在当前状态下,我需要在另一个窗口(例如:记事本)中捕获滚动事件,但这实际上没问题,因为我可能还想手动滚动一些 PDF,然后恢复同步滚动。
这是我的工作流程:
结果:所有打开的 PDF 开始滚动。
这是我的代码(从interwebz借来的:)
WheelDown::
SetTitleMatchMode, 2
IfWinActive, Notepad ; Replace 'SafariTitle' by the title of the safari windows
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
IfWinExist, Adobe
{
Send {WheelDown}
WinActivate ; Automatically uses the window found above.
Send {WheelDown}
Send {WheelDown}
WinActivate, ahk_id %active_id%
}
}
Else
{
Send {WheelDown}
}
return
WheelUp::
SetTitleMatchMode, 2
IfWinActive, Notepad ; Replace 'SafariTitle' by the title of the safari windows
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
IfWinExist, Adobe
{
Send {WheelUp}
WinActivate ; Automatically uses the window found above.
Send {WheelUp}
Send {WheelUp}
WinActivate, ahk_id %active_id%
}
}
Else
{
Send {WheelUp}
}
return
Run Code Online (Sandbox Code Playgroud)
现在它只适用于滚动一个 PDF。
我怎样才能让它查看和滚动所有这些?
找到了解决方案:
WheelDown::
SetTitleMatchMode, 2
IfWinActive, Notepad ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Adobe,, Program Manager
Loop, %id%
{
Send {WheelDown}
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {WheelDown}
Send {WheelDown}
WinActivate, ahk_id %active_id%
}
}
Else
{
Send {WheelDown}
}
return
WheelUp::
SetTitleMatchMode, 2
IfWinActive, Notepad ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Adobe,, Program Manager
Loop, %id%
{
Send {WheelUp}
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {WheelUp}
Send {WheelUp}
WinActivate, ahk_id %active_id%
}
}
Else
{
Send {WheelUp}
}
return
Run Code Online (Sandbox Code Playgroud)
现在可以了。您需要 Adobe Acrobat Reader(或 acrobat Pro,带有 acrobat 的东西)和记事本。
怎么运行的:
打开您想要同步滚动的 PDF。
打开一个记事本窗口(这将是控制窗口,因此您还可以自主滚动 PDF(每个单独)。记事本窗口的大小可以调整得非常小。
单击记事本窗口并滚动。
当您在记事本窗口中滚动时,每个 PDF 都会被选中并滚动。如果您想单独滚动每个 PDF,请手动选择它。