Os X에서는 Shift 키를 누른 상태에서 마우스의 스크롤 휠을 사용하여 세로 대신 가로로 스크롤 할 수 있습니다. Windows에서 비슷한 작업을 수행하는 방법이 있습니까?
Os X에서는 Shift 키를 누른 상태에서 마우스의 스크롤 휠을 사용하여 세로 대신 가로로 스크롤 할 수 있습니다. Windows에서 비슷한 작업을 수행하는 방법이 있습니까?
답변:
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) }
다음은 shift 및 기본 마우스 휠 스크롤 명령을 사용하여 수행하는 AutoHotKey 스크립트입니다.
; Shift + Wheel for horizontal scrolling
+WheelDown::WheelRight
+WheelUp::WheelLeft
이것은 https://gist.github.com/cheeaun/160999 에서 직접 가져옵니다 .
Microsoft 응용 프로그램을 포함한 많은 응용 프로그램은 수평 마우스 휠 스크롤을 지원하지 않습니다. (이 기능은 Windows Vista에서만 도입되었다고 생각합니다.)
에서 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
마우스 오른쪽 버튼으로 Windows에서이를 수행하는 방법이 있습니다. 조그 왼쪽 / 조그 오른쪽 버튼이 오른쪽에 통합 된 스크롤 휠이있는 마우스가 있습니다. 스크롤 휠을 왼쪽이나 오른쪽으로 누르면 내용이 원하는 방향으로 이동합니다. Logitech VX를 보유하고 있으며 매우 만족합니다.
또한 VX를 사용하면 기울어 진 경우 모든 단일 응용 프로그램에 대해 단추를 다르게 구성 할 수 있습니다. 이 수준의 사용자 정의는 매우 좋습니다!
AutoHotKey와 Word 매크로가 모두 필요한 Word 전용 솔루션입니다. Word의 주 문서보기에서만 작동합니다 (나에게 충분합니다).
먼저 AutoHotKey를 사용하여 마우스 동작에 대한 응답으로 사용자 지정 키 입력을 Word로 보냅니다. Alt-M RightArrow 및 Alt-M LeftArrow를 사용하고 있습니다. (또한 마우스가 제대로 전송하기 때문에 WheelLeft 및 WheelRight 이벤트에 대한 매핑이 있습니다. 유용한 기능을 수행하려면 Word가 필요합니다.)
#If WinActive("ahk_class OpusApp")
+WheelUp::SendInput !+M{Left}
WheelLeft::SendInput !+M{Left}
WheelRight::SendInput !+M{Right}
+WheelDown::SendInput !+M{Right}
#If
Word 키 바인딩을 설정하십시오 (키보드 사용자 정의 대화 상자를 사용하여이를 수행 할 수도 있음).
' 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"
마지막으로 일반 템플릿에서 Word 매크로를 정의하거나 위의 참조를 조정하십시오.
Sub ScrollRight()
ActiveWindow.SmallScroll ToRight:=1
End Sub
Sub ScrollLeft()
ActiveWindow.SmallScroll ToLeft:=1
End Sub
주변을 둘러 본 후 결국 AutoHotKey 포럼의 두 가지 다른 솔루션에서 적응했지만 소스를 기록하지 않았으므로 Excel과 다른 곳에서 작동 하는 방법 ( AutoHotKey 사용 )을 찾았습니다. 적절한 신용 미안).
MS Excel은 사용자 인터페이스를 처리하는 이상한 방법 이있는 것 같습니다 (어쨌든 MS Office 개발자가 우리에게 준 것을 몇 년 동안 보았지만 놀라지 않았습니다). 이 스크립트는 MS Word를 제외하고 거의 모든 곳에서 작동하는 것 같습니다. 누군가가 해결할 수 있다면 알려주십시오! 아마도 Word의 창 클래스를 찾고 Excel을 사용하여 수행 한 것과 같은 코드를 코딩하는 것과 같은 것일 수 있습니다 (다른 키 바인딩 세트 만 사용).
#Singleinstance Force
#IfWinActive ahk_class XLMAIN
+WheelUp::
SetScrollLockState, On
SendInput {Left}
SetScrollLockState, Off
Return
+WheelDown::
SetScrollLockState, On
SendInput {Right}
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
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