Windowsの水平スクロールショートカット


64

Os Xでは、Shiftキーを押しながらマウスのスクロールホイールを使用して、垂直ではなく水平にスクロールできます。Windowsで似たようなことをする方法はありますか?


1
どのアプリケーションでスクロールしますか?冒険者?ウェブブラウザ?これは、作成者がどのように実装したいかによって異なります。したがって、ブラウザの場合は異なります。
ジョンT

デフォルトでは、Windowsにはシステム全体のショートカットはないと思います。
chills42

11
システム全体のソリューションを期待していました。
マシューシャンリー

回答:


15

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

ああ、あなたはそれを働かせましたか?驚くばかり!
イヴォFlipse

23

以下は、Shiftおよび(おそらく)ネイティブのマウスホイールスクロールコマンドを使用して実行するAutoHotKeyスクリプトです。

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

これはhttps://gist.github.com/cheeaun/160999から直接取得されます

Microsoftアプリケーションを含む多くのアプリケーションは、水平マウスホイールスクロールをサポートしていないことに注意してください。(この機能はWindows Vistaでのみ導入されたと思います。)


ありがとう、Visual Studioでうまく機能します!残念ながら、Excel 2013とGoogle Chromeでは機能しません。
チーサス14年

3
@cheeesus、私にとって、Windowsでは、Google Chromeには実際に水平スクロールのサポートが組み込まれています。上記のスクリプトがなくても、Shiftキーを押しながらマウスホイールをスクロールすると、水平方向にスクロールできます。
サム14年

2
パーフェクト!これがここでのベストアンサーです。シンプルで簡単です。AutoHotKeyを初めて使用する場合の手順は次のとおりです。1)autohotkey.comからAutoHotKeyをダウンロードしてインストールします2)デスクトップを右クリックします->新規作成->テキストドキュメント-> "myscript.ahk"というファイルを作成します3)上記からスクリプトをコピーして貼り付け->ファイルを保存4)ファイルを右クリック->スクリプトを実行5)小さなHアイコンがタスクバーの通知領域に表示され、「Shift +マウスホイール」が水平になりますスクロール
NP8

@ np8それは私にとってはうまくいきませんでした。スクロールホイール付きの通常のHPマウスを使用しています。Chromeブラウザは、Shift +水平スクロールで動作します。ahkの前でも常に動作していました。今ahkのインストールで.. ms officeが動作することを望んでいましたが..動作しません。
ihightower

@ihightower Excelの解決策もあります。この回答に追加します。
np8

8

http://www.autohotkey.com/docs/Hotkeys.htmから

マウスホイールの最も便利なホットキーには、ウィンドウのテキストをスクロールする代替モードが含まれます。たとえば、左のControlキーを押しながらホイールを回すと、次のホットキーのペアが垂直方向ではなく水平方向にスクロールします。

~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

ウィンドウで右マウスを使用してこれを行う方法があります。私は、ジョグ左/ジョグ右ボタンが組み込まれたスクロールホイール付きのマウスを持っています。スクロールホイールを左右に押すだけで、コンテンツが目的の方向に移動します。Logitech VXを持っていますが、とても満足しています。

VXでは、必要に応じて、アプリケーションごとに異なるボタンを構成することもできます。このレベルのカスタマイズは非常に便利です!


Microsoft Wireless Laser Mouse 5000(microsoft.com/hardware/mouseandkeyboard/…)にはこの機能があります。
トラビス

あなたは正しいです!VXにアップグレードする前に、そのマウスを使用していました。VXには2つの非常に優れた機能があるため、アップグレードしました。7秒間回転するスクロールホイールにフライホイールがあります。もう1つの優れた機能は、マウスのUSBドングルが実際にデバイスに完全に収まるため、ドングルを紛失するのが非常に難しいことです。
Axxmasterr 09

3

一部のWindowsプログラムでは、Shiftは水平方向にスクロールします(Windowsエクスプローラーなど)。

Internet Explorer、Firefox、Excelなどの他のプログラムでは、スクロールホイールボタンを押しながら左から右に移動すると、水平にスクロールします。


2
Chromeにも組み込みのShift水平スクロール機能があるようです。
サム14年

VSでも機能するようです、私が基本的に必要なもの!ありがとうございました!
シミー

2

AutoHotKeyとWordマクロの両方を必要とするWord(のみ)のハッキングソリューションを以下に示します。Wordのメインドキュメントビューでのみ機能します(これで十分です)。

まず、AutoHotKeyを使用して、マウス操作に応じてカスタムキーストロークをWordに送信します。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"

最後に、標準テンプレートでWordマクロを定義します(または上記のマクロへの参照を調整します)。

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

2

キーボードショートカットではありませんが、いつでもマウスホイールをクリックできます。これにより、スクロールに使用できるほとんどのアプリケーションで4方向アイコンが表示されます


1

いくつかの周りを探した後、最終的には(使用方法見つけAutoHotkeyをを、私はソースを記録していなかったので、与えることはできないものの、明らかにAutoHotkeyをフォーラムに異なるソリューションのカップルから適応何も(壊すことなく、他のどこでもExcelで動作し)適切なクレジット申し訳ありません)。

MS Excelには、ユーザーインターフェイスを処理するための奇妙な方法があるようです(ただし、何とか、MS Office開発者が私たちに与えてくれたものを長年見てきたので、私はそれほど驚いていません)。このスクリプトは、MS Wordを除くほとんどすべての場所で機能するようです。誰かがそれを解決できるなら、私に知らせてください!これはおそらく、Wordのウィンドウクラスを見つけて、Excelで行われたように(異なるキーバインドのセットを使用して)具体的にコーディングするようなものです。

#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ソリューションから、スクロール速度を構成可能な独自のソリューションを開発しました。

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

すばらしいスクリプト。これは本当にうまくいきます。
ニックペインター

これが動作していないように見えるアプリケーションのみがWindowsエクスプローラーです。
ニックペインター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.