Di Os X, saya bisa menahan Shift sambil menggunakan roda gulir pada mouse untuk menggulir secara horizontal, bukan vertikal. Apakah ada cara untuk melakukan hal serupa di Windows?
Di Os X, saya bisa menahan Shift sambil menggunakan roda gulir pada mouse untuk menggulir secara horizontal, bukan vertikal. Apakah ada cara untuk melakukan hal serupa di Windows?
Jawaban:
Anda dapat mensimulasikannya dengan Autohotkey
Jika saya menemukan skripnya, saya akan memberi tahu Anda: Dari pos-pos ini:
Anda harus menemukan beberapa skrip
#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) }
Berikut ini skrip AutoHotKey untuk melakukannya menggunakan shift dan (mungkin) perintah gulir roda mouse asli:
; Shift + Wheel for horizontal scrolling
+WheelDown::WheelRight
+WheelUp::WheelLeft
Ini diambil langsung dari https://gist.github.com/cheeaun/160999 .
Ingatlah bahwa banyak aplikasi, termasuk aplikasi Microsoft, tidak mendukung pengguliran roda mouse horizontal. (Saya percaya fitur ini hanya diperkenalkan di Windows Vista.)
Dari http://www.autohotkey.com/docs/Hotkeys.htm
Beberapa hotkey yang paling berguna untuk roda mouse melibatkan mode-mode alternatif untuk menggulirkan teks jendela. Misalnya, sepasang hotkey berikut ini bergulir secara horizontal, bukan vertikal ketika Anda memutar roda sambil menahan tombol Control kiri:
~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
Ada cara untuk melakukan ini di windows dengan mouse kanan. Saya memiliki mouse dengan roda gulir yang memiliki tombol jog kiri / jog kanan terintegrasi langsung ke dalamnya. Cukup mendorong roda gulir ke kiri atau kanan akan memindahkan konten ke arah yang diinginkan. Saya memiliki Logitech VX dan saya sangat senang dengannya.
VX juga memungkinkan Anda untuk mengonfigurasikan tombol secara berbeda untuk setiap aplikasi tunggal jika Anda menginginkannya. Tingkat penyesuaian ini sangat menyenangkan untuk dimiliki!
Dalam beberapa program Windows, shift bergulir secara horizontal (misalnya Windows Explorer).
Dalam program lain seperti Internet Explorer, Firefox dan Excel menahan tombol gulir roda dan bergerak dari kiri ke kanan akan menggulir secara horizontal.
Berikut ini solusi hacky untuk Word (hanya) yang membutuhkan makro AutoHotKey dan Word. Ini hanya berfungsi pada tampilan dokumen utama di Word (yang cukup bagus untuk saya).
Pertama, gunakan AutoHotKey untuk mengirim keystroke khusus ke Word sebagai respons terhadap tindakan mouse. Saya menggunakan Alt-M RightArrow dan Alt-M LeftArrow. (Saya juga punya pemetaan untuk peristiwa WheelLeft dan WheelRight di bawah ini karena mouse saya mengirimkannya dengan baik; Saya hanya perlu Word untuk melakukan sesuatu yang berguna dengan mereka.)
#If WinActive("ahk_class OpusApp")
+WheelUp::SendInput !+M{Left}
WheelLeft::SendInput !+M{Left}
WheelRight::SendInput !+M{Right}
+WheelDown::SendInput !+M{Right}
#If
Menyiapkan binding kata kunci (Anda dapat menggunakan alternatif dialog kustomisasi keyboard untuk melakukan ini):
' 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"
Akhirnya, tentukan makro Word di templat Normal Anda (atau sesuaikan referensi ke atasnya):
Sub ScrollRight()
ActiveWindow.SmallScroll ToRight:=1
End Sub
Sub ScrollLeft()
ActiveWindow.SmallScroll ToLeft:=1
End Sub
Setelah beberapa melihat-lihat, akhirnya menemukan cara (menggunakan AutoHotKey ) yang bekerja di Excel dan di mana-mana, tanpa jelas memecahkan apa pun (diadaptasi dari beberapa solusi berbeda di forum AutoHotKey, meskipun saya tidak merekam sumber sehingga tidak dapat memberikan kredit yang sesuai maaf).
MS Excel tampaknya memiliki beberapa cara aneh untuk menangani antarmuka pengguna (meskipun entah bagaimana, setelah bertahun-tahun melihat apa yang telah diberikan oleh pengembang MS Office kepada kami, saya tidak terlalu terkejut). Skrip ini tampaknya berfungsi hampir di semua tempat kecuali MS Word - jika ada yang bisa menyelesaikannya, beri tahu saya! Mungkin sesuatu seperti mencari tahu kelas jendela untuk Word dan mengkodekannya secara khusus seperti dilakukan dengan Excel (hanya dengan serangkaian ikatan kunci yang berbeda).
#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
Dari solusi Sam, saya mengembangkan solusi saya sendiri yang memiliki kecepatan gulir yang dapat dikonfigurasi:
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