ทางลัดการเลื่อนแนวนอนใน Windows


64

ใน Os X ฉันสามารถกด Shift ค้างไว้ในขณะที่ใช้ล้อเลื่อนของเมาส์เพื่อเลื่อนในแนวนอนแทนที่จะเป็นแนวตั้ง มีวิธีทำสิ่งที่คล้ายกันใน Windows หรือไม่?


1
เลื่อนในแอปพลิเคชันใด สำรวจ? เว็บเบราว์เซอร์? มันขึ้นอยู่กับว่าผู้สร้างต้องการนำไปใช้อย่างไรหากเป็นเบราว์เซอร์มันจะแตกต่างกัน
John T

ฉันไม่คิดว่าจะมีทางลัดสำหรับทั้งระบบในหน้าต่างตามค่าเริ่มต้น
chills42

11
ฉันหวังว่าจะแก้ปัญหาทั้งระบบ
Matthew Shanley

คำตอบ:


15

คุณสามารถจำลองด้วย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

23

ต่อไปนี้เป็นสคริปต์ AutoHotKey ที่ต้องทำโดยใช้การเลื่อนและคำสั่งการเลื่อนล้อเลื่อนของเม้าส์ (สันนิษฐาน)

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

นี้ได้รับมาโดยตรงจากhttps://gist.github.com/cheeaun/160999

โปรดทราบว่าแอปพลิเคชันจำนวนมากรวมถึงแอปพลิเคชันของ Microsoft ไม่รองรับการเลื่อนล้อเลื่อนของเมาส์แนวนอน (ฉันเชื่อว่าคุณลักษณะนี้มีเฉพาะใน Windows Vista)


ขอบคุณใช้งานได้ดีใน Visual Studio! เสียดายที่มันไม่ทำงานใน Excel 2013 และ Google Chrome
cheeesus

3
@cheeesus สำหรับฉันใน Windows Google Chrome มีการรองรับการเลื่อนแนวนอนในตัว แม้ว่าจะไม่มีสคริปต์ข้างต้นฉันสามารถกด Shift ค้างไว้และเลื่อนล้อเลื่อนของเมาส์เพื่อเลื่อนในแนวนอน
Sam

2
ที่สมบูรณ์แบบ! นี่คือคำตอบที่ดีที่สุดที่นี่ง่ายและสะดวก สำหรับผู้ที่ยังใหม่กับ AutoHotKey นี่คือขั้นตอน: 1) ดาวน์โหลดและติดตั้ง AutoHotKey จากautohotkey.com 2) คลิกขวาบนเดสก์ท็อปของคุณ -> ใหม่ -> เอกสารข้อความ -> สร้างไฟล์ชื่อ "myscript.ahk" 3) คัดลอกวางสคริปต์จากด้านบน -> บันทึกไฟล์ 4) คลิกขวาที่ไฟล์ -> เรียกใช้สคริปต์ 5) ไอคอน H ขนาดเล็กควรปรากฏขึ้นที่พื้นที่แจ้งเตือนแถบงานของคุณและตอนนี้ "Shift + Mouse Wheel" ควรสร้างแนวนอน การเลื่อน
np8

@ np8 มันไม่ได้ผลสำหรับฉัน .. ฉันพยายามอย่างนั้น ฉันใช้เมาส์ hp ธรรมดากับล้อเลื่อน เบราว์เซอร์โครมทำงาน shift + scroll ในแนวนอน .. มันทำมาก่อน ahk เสมอ ตอนนี้ด้วยการติดตั้ง ahk .. ฉันหวังว่า ms office จะใช้งานได้ แต่ก็ไม่ได้
ihightower

@ihightower มีวิธีแก้ไขสำหรับ Excel เช่นกัน ฉันจะเพิ่มลงในคำตอบนี้
np8

8

จาก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

มีวิธีการทำเช่นนี้ใน windows ด้วยเมาส์ขวา ฉันมีเมาส์ที่มีล้อเลื่อนที่มีปุ่มซ้าย / ขวาเขย่าเบา ๆ รวมอยู่ในนั้น เพียงแค่เลื่อนล้อเลื่อนไปทางซ้ายหรือขวาจะเป็นการย้ายเนื้อหาไปในทิศทางที่ต้องการ ฉันมี Logitech VX และฉันมีความสุขมากกับมัน

VX ยังช่วยให้คุณสามารถกำหนดค่าปุ่มต่างกันสำหรับทุกแอปพลิเคชันเดียวหากคุณมีความโน้มเอียง การปรับแต่งในระดับนี้ดีมากที่มี!


Microsoft Wireless Laser Mouse 5000 ( microsoft.com/hardware/mouseandkeyboard/… ) มีฟังก์ชั่นนี้
Travis

คุณถูก! ฉันเคยมีเมาส์นั้นก่อนที่ฉันจะอัพเกรดเป็น VX VX มีคุณสมบัติที่ดีสองอย่างซึ่งเป็นเหตุผลที่ฉันอัพเกรด มันมีมู่เล่บนล้อเลื่อนที่หมุนเป็นเวลา 7 วินาที คุณสมบัติที่น่าสนใจอีกอย่างคือดองเกิล USB สำหรับเมาส์ที่เข้ากับอุปกรณ์ได้อย่างสมบูรณ์ดังนั้นมันจึงยากมากที่จะทำดองเกิลหาย
Axxmasterr

3

ในบางโปรแกรมของ Windows การเลื่อนจะเลื่อนในแนวนอน (เช่น Windows Explorer)

ในโปรแกรมอื่นเช่น Internet Explorer, Firefox และ Excel การกดปุ่มล้อเลื่อนค้างไว้และการเลื่อนจากซ้ายไปขวาจะเป็นการเลื่อนในแนวนอน


2
Chrome ดูเหมือนว่าจะมีการเลื่อนแนวนอนในตัวเช่นกัน
แซม

ดูเหมือนว่ามันจะทำงานใน VS เช่นกันสิ่งที่ฉันต้องการโดยทั่วไป! ขอขอบคุณ!
Shimmy

2

ต่อไปนี้เป็นโซลูชันแฮ็กสำหรับ Word (เท่านั้น) ที่ต้องใช้ทั้งแมโคร AutoHotKey และ 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

2

ไม่ใช่แป้นพิมพ์ลัดทุกประการ แต่คุณสามารถคลิกล้อเลื่อนของเมาส์ได้ตลอดเวลา สิ่งนี้จะแสดงไอคอน 4 ทิศทางในแอพพลิเคชั่นส่วนใหญ่ที่คุณสามารถใช้เพื่อเลื่อน


1

หลังจากที่มองไปรอบ ๆ ในที่สุดก็พบวิธี (ใช้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

1

จากโซลูชันแซมฉันพัฒนาโซลูชันของตัวเองซึ่งมีความเร็วการเลื่อนที่กำหนดได้:

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

เฉพาะแอปพลิเคชันที่ดูเหมือนว่าจะใช้งานไม่ได้คือ Windows Explorer
Nick Painter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.