Горизонтальная прокрутка ярлык в Windows

67862
Matthew Shanley

В Os X я могу удерживать клавишу Shift, используя колесико прокрутки мыши для прокрутки по горизонтали, а не по вертикали. Есть ли способ сделать что-то подобное в Windows?

59
прокрутка в каком приложении? исследователь? веб-браузер? Это зависит от того, как создатель хотел реализовать его, поэтому, если это браузер, он будет другим. John T 15 лет назад 1
Я надеялся на общесистемное решение. Matthew Shanley 15 лет назад 11
Я не думаю, что есть общесистемный ярлык для этого по умолчанию в Windows. chills42 15 лет назад 0

9 ответов на вопрос

21
Sam

Here's an AutoHotKey script to do it using shift and (presumably) native mouse wheel scroll commands:

; Shift + Wheel for horizontal scrolling +WheelDown::WheelRight +WheelUp::WheelLeft 

This is taken directly from https://gist.github.com/cheeaun/160999.

Keep in mind that a lot of applications, including Microsoft applications, don't support horizontal mouse wheel scrolling. (I believe the feature was only introduced in Windows Vista.)

Спасибо, отлично работает в Visual Studio! Жаль, что это не работает в Excel 2013 и Google Chrome. cheeesus 10 лет назад 0
@cheeesus, для меня, в Windows, Google Chrome на самом деле имеет встроенную поддержку горизонтальной прокрутки. Даже без приведенного выше сценария я могу удерживать нажатой клавишу «Shift» и прокручивать колесико мыши для горизонтальной прокрутки. Sam 10 лет назад 3
Отлично! Это лучший ответ здесь, простой и легкий. Для тех, кто новичок в AutoHotKey, вот шаги: 1) Загрузите и установите AutoHotKey с http://www.autohotkey.com/ 2) Щелкните правой кнопкой мыши на рабочем столе -> Создать -> Текстовый документ -> Создайте файл с именем «myscript.ahk» 3) Скопируйте и вставьте скрипт из вышеперечисленного -> Сохраните файл 4) Щелкните правой кнопкой мыши по файлу -> Запустите скрипт 5) Небольшой H-значок должен появиться в области уведомлений панели задач, и теперь «Shift» + Mouse Wheel "должен производить горизонтальную прокрутку np8 10 лет назад 2
15
Ivo Flipse

Вы можете смоделировать это с AutoHotKey

Если я найду сценарий, я дам вам знать: Из этих сообщений:

Вы должны найти несколько скриптов

#Persistent mhook := > DllCall("SetWindowsHookEx", "int", 14 > ; WH_MOUSE_LL, "uint", RegisterCallback("WheelHorzHook"), > "uint", 0, "uint", 0) return  WheelLeft: MsgBox WheelLeft return  WheelRight: MsgBox WheelRight return  WheelHorzHook(nCode, wParam, lParam) { global mhook Critical if (wParam = 0x020E) ; WM_MOUSEHWHEEL (Vista-only) { if (delta := NumGet(lParam+0,10,"Short")) { if (delta<0) { SetTimer, WheelLeft, -1 return true } else { SetTimer, WheelRight, -1 return true } } } return DllCall("CallNextHookEx", "uint", mhook, "int", nCode, "uint", wParam, "uint", lParam) } 
Ах, ты получил это на работу? Потрясающие! Ivo Flipse 15 лет назад 0
7
Matthew Lock

С http://www.autohotkey.com/docs/Hotkeys.htm

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

~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 
5
Axxmasterr

Есть способ сделать это в окнах правой кнопкой мыши. У меня есть мышь с колесом прокрутки, в которое встроена правая кнопка Jog Left / Jog Right. Простое нажатие колеса прокрутки влево или вправо перемещает содержимое в нужном направлении. У меня есть Logitech VX, и я был очень счастлив с ним.

VX также позволяет вам настраивать кнопки по-разному для каждого отдельного приложения, если вы так склонны. Этот уровень настройки очень приятен!

Microsoft Wireless Laser Mouse 5000 (http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=068) обладает этой функцией. Travis 15 лет назад 0
Ты прав! Раньше я пользовался этой мышью, прежде чем перейти на VX. У VX есть две очень приятные особенности, поэтому я обновился. Он имеет маховик на колесе прокрутки, который вращается в течение 7 секунд. Еще одна приятная особенность - USB-ключ для мыши, который полностью умещается внутри устройства, поэтому потерять ключ очень сложно. Axxmasterr 15 лет назад 0
3
Matthew Lock

In some Windows programs shift does scroll horizontally (eg Windows Explorer).

In other programs such as Internet Explorer, Firefox and Excel holding down the scroll wheel button and moving from left to right will scroll horizontally.

В Chrome встроена горизонтальная прокрутка Shift. Sam 10 лет назад 2
Похоже, он работает и в VS, что мне и было нужно! Спасибо! Shimmy 8 лет назад 0
2
iagrapefruit

Here's a hacky solution for Word (only) requiring both AutoHotKey and Word macros. It only works on the main document view in Word (which is good enough for me).

First, use AutoHotKey to send a custom keystroke to Word in response to the mouse action. I'm using Alt-M RightArrow and Alt-M LeftArrow. (I also have mappings for the WheelLeft and WheelRight events below because my mouse sends them just fine; I just need Word to do something useful with them.)

#If WinActive("ahk_class OpusApp") +WheelUp::SendInput !+M WheelLeft::SendInput !+M WheelRight::SendInput !+M +WheelDown::SendInput !+M #If 

Set up Word key bindings (you may alternatively use the keyboard customization dialog to do this):

' Alt-Shift-M Right (keycode 39) KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyM, wdKeyShift, wdKeyAlt), _ KeyCode2:=BuildKeyCode(39), _ KeyCategory:=wdKeyCategoryMacro, Command:="Normal.NewMacros.ScrollRight" ' Alt-Shift-M Left (keycode 37) KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyM, wdKeyShift, wdKeyAlt), _ KeyCode2:=BuildKeyCode(37), _ KeyCategory:=wdKeyCategoryMacro, Command:="Normal.NewMacros.ScrollLeft" 

FInally, define the Word macros in your Normal template (or adjust the references to them above):

Sub ScrollRight() ActiveWindow.SmallScroll ToRight:=1 End Sub Sub ScrollLeft() ActiveWindow.SmallScroll ToLeft:=1 End Sub 
1
BevanFindlay

После некоторого осмотра, в конце концов нашел способ (с использованием AutoHotKey ), который работает в Excel и везде, без явного нарушения (адаптировано из нескольких различных решений на форумах AutoHotKey, хотя я не записывал источники, поэтому не могу дать соответствующий кредит извините).

MS Excel, кажется, имеет некоторые странные способы обработки своего пользовательского интерфейса (хотя, так или иначе, после многих лет просмотра того, что разработчики MS Office дали нам, я не настолько удивлен). Этот скрипт, кажется, работает практически везде, кроме MS Word - если кто-то может решить эту проблему, то дайте мне знать! Вероятно, это что-то вроде поиска класса окна для Word и его кодирования, как это было сделано в Excel (просто с другим набором привязок клавиш).

#Singleinstance Force #IfWinActive ahk_class XLMAIN +WheelUp:: SetScrollLockState, On SendInput  SetScrollLockState, Off Return +WheelDown:: SetScrollLockState, On SendInput  SetScrollLockState, Off Return  ; Everything except Excel. #IfWinNotActive ahk_class XLMAIN +WheelUp:: ; Scroll left. ControlGetFocus, fcontrol, A Loop 4 ; <-- 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  +WheelDown:: ; Scroll right. ControlGetFocus, fcontrol, A Loop 4 ; <-- 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 #IfWinActive 
1
Envil

На основе решения Sam я разработал собственное решение с настраиваемой скоростью прокрутки:

https://gist.github.com/envil/d21a24744b68fda626b4444784f71c32

; Shift + Wheel for horizontal scrolling +WheelUp:: ; Scroll to the left MouseGetPos,,,id, fcontrol,1 Loop 8 ; <-- Increase for faster scrolling SendMessage, 0x114, 0, 0, %fcontrol%, ahk_id %id% ; 0x114 is WM_HSCROLL and the 0 after it is SB_LINERIGHT. return +WheelDown:: ;Scroll to the right MouseGetPos,,,id, fcontrol,1 Loop 8 ; <-- Increase for faster scrolling SendMessage, 0x114, 1, 0, %fcontrol%, ahk_id %id% ; 0x114 is WM_HSCROLL and the 1 after it is SB_LINELEFT. return 
Отличный сценарий. Это работает очень хорошо. Nick Painter 6 лет назад 0
Только приложение, над которым это не работает, является проводником Windows. Nick Painter 6 лет назад 0
1
Blaine

Не совсем сочетание клавиш, но вы всегда можете нажать на колесо мыши. В большинстве приложений появляется значок с 4 направлениями, который можно использовать для прокрутки.