Windows'ta yatay kaydırma kısayolu


64

Os X'te, dikey yerine yatay kaydırmak için farenin üzerindeki kaydırma tekerleğini kullanırken Shift tuşunu basılı tutabilirim. Windows'ta benzer bir şey yapmanın bir yolu var mı?


1
Hangi uygulamada kaydırma? kaşif? bir web tarayıcısı? Yaratıcının onu nasıl uygulamak istediğine bağlı olduğundan, eğer bir tarayıcıysa, farklı olacaktır.
John T,

Varsayılan olarak Windows'ta bunun için sistem çapında bir kısayol olduğunu sanmıyorum.
chills42

11
Sistem çapında bir çözüm umuyordum.
Matthew Shanley

Yanıtlar:


15

AutoHotKey ile simüle edebilirsiniz

Senaryoyu bulursam size bildiririm: Bu mesajlardan:

Senaryoları bulmalısı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, işe aldın mı? Korku veren!
Ivo Flipse,

23

İşte shift ve (büyük olasılıkla) yerel fare tekerleği kaydırma komutlarını kullanarak yapmak için bir AutoHotKey komut dosyası:

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

Bu doğrudan https://gist.github.com/cheeaun/160999 adresinden alınmıştır .

Microsoft uygulamaları dahil birçok uygulamanın yatay fare tekerleği kaydırmasını desteklemediğini unutmayın. (Özelliğin yalnızca Windows Vista'da tanıtıldığına inanıyorum.)


Teşekkürler, Visual Studio'da harika çalışıyor! Çok yazık, Excel 2013 ve Google Chrome'da çalışmıyor.
cheeesus

3
@cheeesus, benim için, Windows’ta Google Chrome aslında yatay kaydırma için yerleşik desteğe sahip. Yukarıdaki senaryo olmasa bile, yatay kaydırmak için Shift tuşunu basılı tutabilir ve fare tekerleğini kaydırabilirim.
Sam

2
Mükemmel! Buradaki en iyi cevap basit ve kolaydır. AutoHotKey'de yeni olanlar için, işte adımlar: 1) AutoHotKey'i autohotkey.com adresinden indirip yükleyin 2) Masaüstünüze sağ tıklayın -> Yeni -> Metin Belgesi -> "myscript.ahk" adlı bir dosya oluşturun 3) Komut dosyasını yukarıdan kopyalayıp yapıştırın -> Dosyayı kaydedin 4) Dosyaya sağ tıklayın -> Komut Dosyasını Çalıştır 5) Görev çubuğu bildirim alanınıza küçük H-simgesi görünmeli ve şimdi "Üst Karakter + Fare Tekerleği" yatay yapmalıdır kaydırma
np8

@ np8 benim için işe yaramadı .. Ben tam olarak bu denedim. kaydırma tekerleği ile normal bir hp fare kullanıyorum. Krom tarayıcı shift + kaydırma yatay çalışır .. her zaman ahk önce bile oldu. şimdi ahk kurulumuyla .. ms ofisin çalışacağını umuyordum .. ama işe yaramadı.
ihightower

@ihightower Excel için de bir çözüm var. Bu cevaba ekleyeceğim.
np8

8

Gönderen http://www.autohotkey.com/docs/Hotkeys.htm

Fare tekerleği için en yararlı kısayol tuşlarından bazıları, bir pencerenin metnini kaydırmanın alternatif modlarını içerir. Örneğin, aşağıdaki kısayol tuşları çifti, sol Kontrol tuşunu basılı tutarken tekerleği döndürdüğünüzde dikey yerine yatay olarak kaydırılır:

~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'ta sağ fare ile yapmanın bir yolu var. Sağa bütünleşik bir jogme sola / sağa hareket düğmesine sahip kaydırma tekerleğine sahip bir farem var. Kaydırma tekerleğini sola veya sağa itmek, içerikleri istenen yönde hareket ettirir. Logitech VX'e sahibim ve bundan çok memnun kaldım.

VX ayrıca, eğimli olmanız durumunda her bir uygulama için düğmeleri farklı şekilde yapılandırmanıza izin verir. Bu özelleştirme seviyesi olması çok güzel!


Microsoft Kablosuz Lazer Fare 5000 ( microsoft.com/hardware/mouseandkeyboard/… ) bu işlevselliğe sahiptir.
Travis,

Haklısın! VX'e geçmeden önce o fareyi kullanırdım. VX’in iki güzel özelliği var; bu yüzden yükseltme yaptım. Kaydırma tekerleğinde 7 saniye boyunca dönen bir volan vardır. Diğer güzel özellik, fare için USB dongle aslında cihazın içine tam olarak uyuyor, bu yüzden dongle'ı kaybetmek çok zor.
Axxmasterr

3

Bazı Windows programlarında vardiya yatay kaydırma yapar (örn. Windows Gezgini).

Internet Explorer, Firefox ve Excel gibi diğer programlarda kaydırma tekerleğini basılı tutup soldan sağa hareket ettirmek yatay olarak kaydırılır.


2
Chrome'da da yerleşik Shift yatay kaydırma var.
Sam

Temelde ihtiyaç duyduğum VS'de de çalışıyor gibi görünüyor! Teşekkür ederim!
Shimmy

2

İşte hem AutoHotKey hem de Word makrolarını gerektiren Word (sadece) hack bir çözüm. Yalnızca Word'deki ana belge görünümünde çalışır (bu benim için yeterince iyi).

İlk olarak, fare eylemine yanıt olarak Word'e özel bir tuş vuruşu göndermek için AutoHotKey tuşunu kullanın. Alt-M RightArrow ve Alt-M LeftArrow kullanıyorum. (Ayrıca WheelLeft ve WheelRight olayları için eşlemelere sahibim, çünkü farem onları iyi gönderir; onlarla yararlı bir şeyler yapmak için Word'e ihtiyacım var.)

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

Word tuşu ciltlemelerini ayarlama (bunu yapmak için alternatif olarak klavye özelleştirmesi iletişim kutusunu kullanabilirsiniz):

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

Son olarak, Normal şablonunuzdaki Word makrolarını tanımlayın (veya yukarıdaki referansları ayarlayın):

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

2

Tam olarak bir klavye kısayolu değil, ancak her zaman fare tekerleğini aşağı tıklayabilirsiniz. Bu, kaydırma yapmak için kullanabileceğiniz çoğu uygulamada 4 yollu bir simge getirir.


1

Bazıları etrafa baktıktan sonra, sonunda Excel'de ve başka yerlerde çalışan ( AutoHotKey kullanarak ) (AutoHotKey forumlarında çalışan birkaç farklı çözümden uyarlanmış bir şekilde hiçbir şey kırılmadan), AutoHotKey forumlarındaki birkaç farklı çözümden uyarlanmış bir yol buldum. uygun kredi üzgünüm).

MS Excel'in kullanıcı arabirimini kullanmanın bazı garip yolları var gibi gözüküyor (bir şekilde, MS Office geliştiricilerinin bize neler verdiğini uzun yıllar gördükten sonra şaşırmıyorum). Bu senaryo MS Word hariç hemen hemen her yerde çalışıyor gibi görünüyor - eğer biri çözebilirse, o zaman bana bildirin! Muhtemelen Word için pencere sınıfını bulmak ve özellikle Excel ile yapıldığı gibi kodlamak gibi bir şey (sadece farklı bir anahtar bağlama kümesi ile).

#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

Sam çözümünden, yapılandırılabilir kaydırma hızına sahip olan kendi çözümümü geliştirdim:

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

Harika senaryo. Bu gerçekten iyi çalışıyor.
Nick Painter,

Bunun üzerinde çalışma görünmüyor tek uygulama, Windows gezginidir.
Nick Painter,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.