web-dev-qa-db-ja.com

トラックボールを使用してスクロール、ズームなど

Logitech Marble Trackballを持っています(これは素晴らしいです)。追加のボタンの1つを「中」のマウスボタンとして設定すると、クリックすると、多くのアプリ(ブラウザーなど)が「スクロールモード」を開始し、トラックボールを上下にスクロールします。ほとんどの場合、これで十分ですが、ズーム、パン、回転(特にGIMP)などのさまざまなことを実行するためのいくつかの「モード」があれば、はるかにクールになると思います。次に、CTRL、CTRL + SHIFTなどを押したままにすると、新しいモードになり、トラックボールの動作が異なります。

AutoHotKeyの使用を示唆するこれに似た質問がいくつか見つかりましたが、これを行うためのサンプルスクリプトが見つかりませんでした。また、AHK内でマウスの動きを追跡することもできません。ポインタはありますか?

スクロールホイールのホットキー

スクロールホイールなしのトラックボールの治療法は?

ありがとう!

5
jdve

かなり長い間いじった後、私はかなりうまく機能するこのスクリプトを思いつきました。 CapsLockを押し続けると、「マウスホイール」モードになります。アプリによっては、CapsLock + Ctrlキーを押したままにして、別の動作(ズームなど)を取得することもできます。スクリプトは、マウスの位置を常にリセットして画面上に保持する必要があるため、モードの間はカーソルを非表示にします( カーソル非表示スクリプト も取得します)。

CoordMode, Mouse, Screen

*CapsLock:: 
    MouseGetPos, xposinit, yposinit
    xposlast := xposinit
    yposlast := yposinit

    SystemCursor("Off")

    SetTimer, ButtonHold, 10
    KeyWait, CapsLock
    SetTimer, ButtonHold, off

    MouseMove, xposinit, yposinit, 0
    SystemCursor("On")

    Return

    ButtonHold:
        MouseGetPos, xpos, ypos

        if (ypos > yposlast) {
            MouseClick, WheelDown
        } else if (ypos < yposlast) {
            MouseClick, WheelUp
        }

        MouseMove, xposlast, yposlast, 0
3
jdve