Используйте трекбол для прокрутки, масштабирования и т. Д.

У меня есть Logitech Marble Trackball (это здорово, кстати). При установке одной из дополнительных кнопок в качестве "средней" кнопки мыши, когда я нажимаю на нее, многие приложения (например, браузеры) запускают "режим прокрутки", так что перемещение трекбола будет прокручиваться вверх и вниз. В большинстве случаев этого достаточно, но я полагаю, что было бы намного круче, если бы у меня было несколько "режимов" для выполнения разных задач, таких как масштабирование, панорамирование, вращение (особенно в GIMP). Затем, когда я удерживаю CTRL, CTRL+SHIFT или что-то подобное, он входит в новый режим, и трекбол ведет себя по-другому.

Я нашел пару вопросов, похожих на этот, которые предлагают использовать AutoHotKey, но я не нашел пример сценария для этого и не могу отследить движения мыши внутри AHK. Есть указатели?

горячая клавиша для прокрутки

средство от трекбола без колеса прокрутки?

Спасибо!

1 ответ

После долгого времени я придумал этот скрипт, который работает довольно хорошо. Удерживая 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
Другие вопросы по тегам