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

4657
jdve

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

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

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

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

Спасибо!

5
Есть несколько сценариев, если вы Google: AutoHockkey трекбол BrianA 12 лет назад 0

1 ответ на вопрос

3
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