5

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

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

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

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

Спасибо!

1 ответ1

3

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .