Phím tắt cuộn ngang trong Windows


64

Trong Os X, tôi có thể giữ Shift trong khi sử dụng bánh xe cuộn trên chuột để cuộn theo chiều ngang thay vì theo chiều dọc. Có cách nào để làm một cái gì đó tương tự trong Windows?


1
cuộn trong ứng dụng gì? nhà thám hiểm? trình duyệt web? Nó phụ thuộc vào cách người tạo muốn triển khai nó, vì vậy nếu là trình duyệt thì nó sẽ khác.
John T

Tôi không nghĩ rằng có một lối tắt trên toàn hệ thống cho cửa sổ theo mặc định.
ớn lạnh42

11
Tôi đã hy vọng cho một giải pháp toàn hệ thống.
Matthew Shanley

Câu trả lời:


15

Bạn có thể mô phỏng nó với AutoHotKey

Nếu tôi tìm thấy tập lệnh tôi sẽ cho bạn biết: Từ những bài đăng này:

Bạn nên tìm một số kịch bản

#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) }

Ah bạn có nó để làm việc? Tuyệt vời!
Ivo Flipse

23

Đây là tập lệnh AutoHotKey để thực hiện bằng cách sử dụng lệnh shift và (có lẽ là) lệnh cuộn bánh xe chuột nguyên gốc:

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

Điều này được lấy trực tiếp từ https://gist.github.com/cheeaun/160999 .

Hãy nhớ rằng rất nhiều ứng dụng, bao gồm cả các ứng dụng của Microsoft, không hỗ trợ cuộn chuột ngang. (Tôi tin rằng tính năng này chỉ được giới thiệu trong Windows Vista.)


Cảm ơn bạn, hoạt động tuyệt vời trong Visual Studio! Quá tệ, nó không hoạt động trong Excel 2013 và Google Chrome.
cheeesus

3
@cheeesus, đối với tôi, trong Windows, Google Chrome thực sự có hỗ trợ tích hợp để cuộn ngang. Ngay cả khi không có đoạn script trên, tôi có thể giữ phím Shift và cuộn bánh xe chuột để cuộn theo chiều ngang.
Sam

2
Hoàn hảo! Đây là câu trả lời tốt nhất ở đây, đơn giản và dễ dàng. Đối với những người mới sử dụng AutoHotKey, đây là các bước: 1) Tải xuống và cài đặt AutoHotKey từ autohotkey.com 2) Nhấp chuột phải vào máy tính để bàn của bạn -> Mới -> Tài liệu văn bản -> Tạo một tệp có tên "myscript.ahk" 3) Sao chép-dán tập lệnh từ phía trên -> Lưu tệp 4) Nhấp chuột phải vào tệp -> Chạy Tập lệnh 5) Biểu tượng H nhỏ sẽ xuất hiện ở khu vực thông báo trên thanh tác vụ của bạn và bây giờ "Shift + Bánh xe chuột" sẽ tạo ra ngang cuộn
np8

@ np8 nó không hoạt động với tôi .. tôi đã thử chính xác như vậy. tôi đang sử dụng chuột hp bình thường với bánh xe cuộn. trình duyệt chrome hoạt động shift + cuộn theo chiều ngang .. nó luôn luôn làm ngay cả trước khi ahk. Bây giờ với cài đặt ahk .. tôi đã hy vọng ms office sẽ hoạt động .. nhưng không được.
ihightower

@ihightower Cũng có một giải pháp cho Excel. Tôi sẽ thêm nó vào câu trả lời này.
np8

8

Từ http://www.autohotkey.com/docs/Hotkeys.htm

Một số phím nóng hữu ích nhất cho bánh xe chuột liên quan đến các chế độ cuộn xen kẽ văn bản của cửa sổ. Ví dụ: cặp phím nóng sau đây cuộn theo chiều ngang thay vì theo chiều dọc khi bạn xoay bánh xe trong khi giữ phím Điều khiển bên trái:

~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

Có một cách để làm điều này trong các cửa sổ với chuột phải. Tôi có một con chuột với một bánh xe cuộn có nút chạy bên trái / chạy bên phải được tích hợp bên phải. Chỉ cần đẩy bánh xe cuộn sang trái hoặc phải sẽ di chuyển nội dung theo hướng mong muốn. Tôi có Logitech VX và tôi đã rất hài lòng với nó.

VX cũng cho phép bạn định cấu hình các nút khác nhau cho mỗi ứng dụng nếu bạn quá nghiêng. Mức độ tùy biến này là rất tốt đẹp để có!


Chuột không dây Microsoft 5000 ( microsoft.com/hardware/mouseandkeyboard/ cấp ) có chức năng này.
Travis

Bạn nói đúng! Tôi đã từng có con chuột đó trước khi tôi nâng cấp lên VX. VX có hai tính năng rất hay đó là lý do tôi nâng cấp. Nó có một bánh đà trên bánh xe cuộn quay trong 7 giây. Một tính năng thú vị khác là khóa USB cho chuột thực sự nằm hoàn toàn bên trong thiết bị, do đó rất khó để mất khóa.
Axxmasterr

3

Trong một số chương trình Windows, dịch chuyển không cuộn theo chiều ngang (ví dụ: Windows Explorer).

Trong các chương trình khác như Internet Explorer, Firefox và Excel nhấn giữ nút cuộn và di chuyển từ trái sang phải sẽ cuộn theo chiều ngang.


2
Chrome dường như cũng có tính năng cuộn ngang Shift tích hợp.
Sam

Có vẻ như nó cũng hoạt động trong VS, điều cơ bản tôi cần! Cảm ơn bạn!
Shimmy

2

Đây là một giải pháp hacky cho Word (chỉ) yêu cầu cả macro AutoHotKey và Word. Nó chỉ hoạt động trên chế độ xem tài liệu chính trong Word (đủ tốt cho tôi).

Đầu tiên, sử dụng AutoHotKey để gửi tổ hợp phím tùy chỉnh tới Word để phản hồi lại hành động của chuột. Tôi đang sử dụng Alt-M RightArrow và Alt-M LeftArrow. (Tôi cũng có ánh xạ cho các sự kiện WheelLeft và WheelRight bên dưới vì chuột của tôi gửi chúng tốt; tôi chỉ cần Word để làm điều gì đó hữu ích với chúng.)

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

Thiết lập các ràng buộc phím Word (bạn có thể sử dụng hộp thoại tùy chỉnh bàn phím để thực hiện việc này):

' 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"

Cuối cùng, xác định các macro Word trong mẫu Bình thường của bạn (hoặc điều chỉnh các tham chiếu đến chúng ở trên):

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

2

Không chính xác là một phím tắt, nhưng bạn luôn có thể nhấp xuống bánh xe chuột. Thao tác này hiển thị biểu tượng 4 chiều trong hầu hết các ứng dụng mà bạn có thể sử dụng để cuộn


1

Sau khi tìm kiếm xung quanh, cuối cùng cũng tìm thấy một cách (sử dụng AutoHotKey ) hoạt động trong Excel và mọi nơi khác, mà không rõ ràng phá vỡ bất cứ điều gì (được điều chỉnh từ một vài giải pháp khác nhau trên các diễn đàn AutoHotKey, mặc dù tôi không ghi lại các nguồn nên không thể cung cấp tín dụng thích hợp xin lỗi).

MS Excel dường như có một số cách xử lý giao diện người dùng kỳ lạ (mặc dù bằng cách nào đó, sau nhiều năm nhìn thấy những gì các nhà phát triển MS Office đã cho chúng tôi, tôi không ngạc nhiên lắm). Kịch bản này dường như hoạt động khá nhiều ở mọi nơi trừ MS Word - nếu có ai có thể giải quyết điều đó, thì hãy cho tôi biết! Có lẽ một cái gì đó giống như tìm ra lớp cửa sổ cho Word và mã hóa cho nó cụ thể như đã được thực hiện với Excel (chỉ với một tập hợp các ràng buộc chính khác).

#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

Từ giải pháp Sam, tôi đã phát triển giải pháp của riêng mình với tốc độ cuộn có thể định cấu hình:

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

Kịch bản tuyệt vời. Điều này hoạt động thực sự tốt.
Nick Họa sĩ

Chỉ có ứng dụng này dường như không hoạt động trên Windows explorer.
Nick Họa sĩ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.