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ı?
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ı?
Yanıtlar:
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) }
İş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.)
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
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!
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.
İş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
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
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