Я ищу способ прокрутки с помощью клавиатуры с помощью AutoHotkey. Было бы также здорово, если бы я мог как-то настроить скорость прокрутки.
4 ответа
Вы можете использовать функцию MouseClick
для имитации колеса мыши. Вот пример сценария, который позволяет вам прокручивать, удерживая клавишу CapsLock и нажимая «w» для прокрутки вверх или «s» для прокрутки вниз:
CapsLock & w::
MouseClick,WheelUp,,,10,0,D,R
return
CapsLock & s::
MouseClick,WheelDown,,,10,0,D,R
return
Вы можете сделать это быстрее, изменив 10
на большее значение. Это количество "стопоров", которые вы хотите прокрутить колесом.
На autohotkey.com также есть скрипт, который настраивает все кнопки мыши и движения на NumPad, хотя я этого не пробовал.
Это сценарий, который я только что разработал. Нажмите 0 и клавишу со стрелкой вверх или вниз для работы. Если на вашем компьютере нет цифровой клавиатуры, вы всегда можете настроить две клавиши так, как считаете нужным. Это работает так, что вы можете удерживать 0 и клавишу со стрелкой и продолжить прокрутку скорости. Возможно, лучше, чем само колесо прокрутки?
0 & Up::
Loop
{
Send {WheelUp}
GetKeyState, T, Down
If T=U ; U is a state for up, D is a state for down
Break
}
Return
0 & Down::
Loop
{
Send {WheelDown}
GetKeyState, T, Down
If T=U ; U is a state for up, D is a state for down
Break
}
Return
Горячие клавиши колеса мыши [Windows NT/2000/XP или более поздняя версия]
Горячие клавиши, которые запускаются при вращении колесика мыши, поддерживаются через названия клавиш WheelDown и WheelUp. WheelLeft и WheelRight также поддерживаются в v1.0.48+, но не влияют на операционные системы, более старые, чем Windows Vista. Вот несколько примеров горячих клавиш колеса мыши:
MButton & WheelDown::MsgBox You turned the mouse wheel down while holding down the middle button.
^!WheelUp::MsgBox You rotated the wheel up while holding down Control+Alt.
В версии 1.0.43.03+ встроенная переменная A_EventInfo содержит величину, на которую было повернуто колесо, обычно равную 1. Однако A_EventInfo может быть больше или меньше 1 при следующих обстоятельствах:
- Если оборудование мыши сообщает о расстоянии менее одной отметки, A_EventInfo может содержать 0;
- Если колесо вращается быстро (в зависимости от типа мыши), A_EventInfo может быть больше 1. Горячая клавиша, подобная следующей, может помочь проанализировать вашу мышь:
~WheelDown::ToolTip %A_EventInfo%
Некоторые из наиболее полезных горячих клавиш для колеса мыши включают альтернативные режимы прокрутки текста окна. Например, следующая пара горячих клавиш прокручивается по горизонтали, а не по вертикали, когда вы поворачиваете колесо, удерживая левую клавишу управления:
~LControl & WheelUp:: ; Scroll left.
ControlGetFocus, fcontrol, A
Loop 2 ; <-- Increase this value to scroll faster.
SendMessage, 0x114, 0, 0, %fcontrol%, A ; 0x114 is WM_HSCROLL and the 0 after it is SB_LINELEFT.
return
~LControl & WheelDown:: ; Scroll right.
ControlGetFocus, fcontrol, A
Loop 2 ; <-- Increase this value to scroll faster.
SendMessage, 0x114, 1, 0, %fcontrol%, A ; 0x114 is WM_HSCROLL and the 1 after it is SB_LINERIGHT.
return
Наконец, поскольку горячие клавиши колеса мыши генерируют только события отключения (никогда), их нельзя использовать в качестве горячих клавиш.
[Источник: Здесь ]
Я рекомендую решение с http://lifehacker.com/5626708/use-autohotkey-to-scroll-backwards-in-the-command-prompt-by-keyboard
Лично я предпочитаю использовать ключ LWin в качестве модификатора (чтобы избежать коллизии с привязкой ключа Emacs):
LWin & PgUp:: Send {WheelUp} Return LWin & PgDn:: Send {WheelDown} Return
Это решение отличается от решения yhw42 настолько простым для понимания и использует стандартные настройки Windows для прокрутки (как быстро прокручивать).
П р и м е ч а н и е - Эта техника полезна для ноутбуков (так как тачпад может быть бесполезен для некоторых пользователей) и для пользователей, которым не нравится мышь. Событие мыши отправляется на активные элементы GUI, поэтому вам нужно правильно расположить мышь.