Я хочу использовать AutoHotkey для горизонтальной прокрутки документа в Adobe Reader X. Отправка сообщений колесика (0x20e) не работает, а также отправка сообщений прокрутки (0x114). Единственный способ, который я мог найти, - это отправлять клики на стрелки полосы прокрутки, но это делает прокрутку по горизонтали очень медленной, помимо того, что сильно замедляет одновременную вертикальную прокрутку. Кроме того, я заметил, что мой драйвер мыши (UltraNav) может прокручиваться в явно модальном диалоговом окне в Adobe Reader X, таком как диалоговое окно «Открыть файл», в то время как ни один из вышеперечисленных трех методов не может. Так кто-нибудь знает, что мой драйвер мыши может делать или по-другому?
Я только что нашел четвертый метод, который работает довольно хорошо для большинства приложений, для которых первые два не дают результатов, - это отправка клавиш со стрелками на полосу прокрутки. Когда он отвечает правильно, он также отвечает на {PgUp} и {PgDn}, которые прокручивают страницу. Тем не менее, он все еще не работает в модальном диалоговом окне, поэтому то, что делает драйвер мыши, остается для меня загадкой, хотя кажется, что оно прокручивается на те же суммы. Кроме того, этот метод не работает в проводнике Windows (как ожидается); ключи, отправленные на полосы прокрутки, также отправляются в основную область. Например, controlsend,%scrollbarname%,{Down},ahk_id %window%
будет успешно прокручиваться полоса прокрутки, но при этом текущая позиция выбора будет перемещаться вниз, если это возможно. Я не могу найти какой-либо другой способ управления горизонтальной полосой прокрутки в проводнике Windows без отправки щелчков мыши.
редактировать
Посмотрите прокрутку AutoHotkey и ускорение среднего щелчка и мыши, которая была моей первоначальной целью, Adobe Reader - лишь одно из многих приложений, которые не понимают обычные сообщения колесика.
источник
@<username>
укажите где-нибудь свой комментарий.Вы можете щелкнуть (только нажмите левую кнопку мыши, пока не высвободите ее) в начале полосы прокрутки, там, где на изображении ниже находится красная точка. После перемещения мыши как можно ниже, в том месте, где зеленая точка находится на изображении ниже. Теперь отпустите левую кнопку мыши. Скорость прокрутки должна быть достаточно хорошей.
Вот полный код скрипта AutoHotkey:
Переменные InitX и InitY должны содержать координаты (x и y соответственно) начальных точек. Координаты красной точки на изображении выше.
Переменные DestX и DestY должны содержать координаты (x и y соответственно) для пунктов назначения. Координаты зеленой точки на изображении выше.
ИЗДАНО :
Может ли это помочь вам: http://ahkscript.org/boards/viewtopic.php?f=5&t=4028
Загрузите новую версию AutoHotkey с http://ahkscript.org/ (текущая версия). AutoHotkey от autohotkey.com устарел!
источник
0
. Это может пойти до100
(больше значения, меньше скорость). И да, скорость прокрутки зависит от ширины документа. Код обновлен.Короткий ответ
Для горизонтальной прокрутки в Adobe Reader X отправляйте сообщения прокрутки родительскому элементу полосы прокрутки, как в
sendscrolltoscrollbarparent
коде. Многие другие способы не будут работать должным образом. Этот метод дает очень быструю прокрутку, даже лучше, чем мой оригинальный драйвер мыши.Длинный ответ
Я нашел свои ответы, но забыл об этом вопросе. По сути, я использовал уникальный метод для каждого безумного приложения. Поскольку их слишком много, я создал отдельный вопрос и ответ для всего лота ( прокрутка AutoHotkey и ускорение щелчка средней кнопкой мыши и мыши ), и здесь приведу только части, относящиеся к Adobe Reader.
Процесс должен идти так. Сначала вы вызываете
gettarget
, что предполагает, что положение мыши сохранено,mx,my
и находит правильную цель для событий прокрутки на основе того, что в данный момент находится под мышью. Затем вы повторно звонитеscroll
после добавления суммы, чтобы перейти кsx,sy
.Для Adobe Reader даже вертикальная прокрутка зависит от отправки сообщений колесика в нужное место, что не согласуется, и поэтому я закончил жестким кодированием для двух основных случаев: прокрутки области отображения документа и прокрутки области закладок. Чтобы выяснить, в каком случае это происходит, я проверяю, есть ли у родительского элемента управления под мышкой вызываемый потомок
AVL_AVView4
или нет. Если это так, то это то, что нужно для отправки сообщений вертикального колеса, в исполненииsendwheel
. Но для горизонтальной прокрутки получается, что отправка сообщений прокрутки на родительский элемент управления правильной полосы прокрутки работает в обоих местах, и выполняетсяsendscrolltoscrollbarparent
. Правильная полоса прокрутки - это та,scrollbar1
которая называется потомком родительского элемента управления под мышью.Код
источник
Мое решение:
Вы можете увеличить число 20, чтобы прокрутить медленнее
источник