ओएस एक्स में, मैं माउस पर स्क्रॉल व्हील का उपयोग करते हुए शिफ्ट को क्षैतिज रूप से लंबवत स्क्रॉल करने के लिए पकड़ सकता हूं। क्या विंडोज में कुछ ऐसा ही करने का एक तरीका है?
ओएस एक्स में, मैं माउस पर स्क्रॉल व्हील का उपयोग करते हुए शिफ्ट को क्षैतिज रूप से लंबवत स्क्रॉल करने के लिए पकड़ सकता हूं। क्या विंडोज में कुछ ऐसा ही करने का एक तरीका है?
जवाबों:
आप इसे 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) }
यहां शिफ्ट और (संभवतः) देशी माउस व्हील स्क्रॉल कमांड का उपयोग करके इसे करने के लिए एक ऑटोहॉटकी स्क्रिप्ट दी गई है:
; Shift + Wheel for horizontal scrolling
+WheelDown::WheelRight
+WheelUp::WheelLeft
यह सीधे https://gist.github.com/cheeaun/160999 से लिया गया है ।
ध्यान रखें कि Microsoft अनुप्रयोगों सहित बहुत सारे अनुप्रयोग, क्षैतिज माउस व्हील स्क्रॉलिंग का समर्थन नहीं करते हैं। (मेरा मानना है कि यह सुविधा केवल विंडोज विस्टा में पेश की गई थी।)
से 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
सही माउस के साथ खिड़कियों में ऐसा करने का एक तरीका है। मेरे पास एक स्क्रॉल व्हील के साथ एक माउस है जिसमें एक जॉग लेफ्ट / जॉग राइट बटन है जो इसे सही में एकीकृत करता है। बस बाएं या दाएं स्क्रॉल व्हील को धक्का देने से सामग्री वांछित दिशा में चली जाएगी। मेरे पास लॉजिटेक वीएक्स है और मैं इससे बहुत खुश हूं।
VX आपको हर एक एप्लिकेशन के लिए बटन को अलग से कॉन्फ़िगर करने की अनुमति देता है यदि आप बहुत इच्छुक थे। अनुकूलन का यह स्तर बहुत अच्छा है!
कुछ विंडोज कार्यक्रमों में शिफ्ट क्षैतिज रूप से स्क्रॉल करता है (जैसे विंडोज एक्सप्लोरर)।
इंटरनेट एक्सप्लोरर, फ़ायरफ़ॉक्स और एक्सेल जैसे अन्य कार्यक्रमों में स्क्रॉल व्हील बटन को दबाए रखना और बाएं से दाएं चलना क्षैतिज रूप से स्क्रॉल करेगा।
यहाँ AutoHotKey और Word macros दोनों के लिए Word (केवल) के लिए एक घिनौना समाधान है। यह केवल Word में मुख्य दस्तावेज़ दृश्य पर काम करता है (जो मेरे लिए काफी अच्छा है)।
सबसे पहले, माउस कार्रवाई के जवाब में Word के लिए एक कस्टम कीस्ट्रोक भेजने के लिए AutoHotKey का उपयोग करें। मैं 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"
सामान्य रूप से, अपने सामान्य टेम्पलेट में वर्ड मैक्रो को परिभाषित करें (या ऊपर दिए गए संदर्भों को समायोजित करें):
Sub ScrollRight()
ActiveWindow.SmallScroll ToRight:=1
End Sub
Sub ScrollLeft()
ActiveWindow.SmallScroll ToLeft:=1
End Sub
कुछ चारों ओर देखने के बाद, अंततः एक रास्ता मिला ( ऑटोहोटेके का उपयोग करके ) जो एक्सेल में और हर जगह काम करता है, स्पष्ट रूप से कुछ भी तोड़ने के बिना (ऑटोहोटेकी मंचों पर अलग-अलग समाधानों के एक जोड़े से अनुकूलित, हालांकि मैं रिकॉर्ड स्रोत नहीं दे सकता था इसलिए नहीं दे सकता उचित क्रेडिट क्षमा करें)।
एमएस एक्सेल के यूजर इंटरफेस को संभालने के कुछ अजीब तरीके हैं (हालांकि किसी भी तरह, एमएस ऑफिस डेवलपर्स ने हमें क्या दिया है, यह देखने के कई वर्षों के बाद, मुझे आश्चर्य नहीं है)। यह स्क्रिप्ट एमएस वर्ड को छोड़कर हर जगह बहुत काम की लगती है - अगर कोई इसे हल कर सकता है, तो मुझे बताएं! यह शायद कुछ ऐसा है जैसे वर्ड के लिए विंडो क्लास का पता लगाना और उसके लिए कोडिंग करना विशेष रूप से एक्सेल के साथ किया गया था (बस कुंजी बाइंडिंग के एक अलग सेट के साथ)।
#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
सैम समाधान से, मैंने अपना स्वयं का समाधान विकसित किया जिसमें विन्यास योग्य स्क्रॉल गति है:
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