Х-прокрутка в Windows

548
Chris Charabaruk

Есть ли способ отправить события колесика мыши в любое окно под указателем мыши, даже если это не активное окно? Я хотел бы иметь возможности x-scrollwheel без необходимости включать x-mouse.

1

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

2
i-g

Я не уверен, поддерживается ли это в Windows изначально, но программа под названием KatMouse должна сделать именно это:

Основная цель утилиты KatMouse - улучшить функциональность мышей с помощью колеса прокрутки, предлагая «универсальную» прокрутку: перемещение колеса мыши будет прокручивать окно непосредственно под курсором мыши (а не окно с фокусом клавиатуры, которое по умолчанию). в ОС Windows). Это значительное увеличение полезности колесика мыши.

KatMouse

Я уже использую KatMouse, но это не всегда помогает. Chris Charabaruk 15 лет назад 0
Н / М, я идиот, которому нужен RTFD. Тем не менее, он не работает для некоторых приложений, таких как Document Explorer. Chris Charabaruk 15 лет назад 0
Autohotkey сделает тривиальной отправку, скажем, щелчка мышью на кнопку вниз рядом с полосой прокрутки. Phoshi 15 лет назад 0
KatMouse использует правильную семантику wheelmouse для окон и может быть настроен на прокрутку щелчков мыши для окон, которые не поддерживают сообщения wheelmouse, для каждого приложения и для каждого окна. Это тоже очень удобно. KatMouse выигрывает для этого. Chris Charabaruk 15 лет назад 0
2
Phoshi

AutoHotkey!

CoordMode, Mouse, Screen SetWinDelay, -1 SetBatchLines,-1 SetKeyDelay, -1  ; acceleration _WHEELACC=0x280000 ; max speed _WHEELMAXN=0x1800000 ; automatically activate window _WHEELAUTOFOCUS=1  return   EasyWheel(d) ; if _WHEELAUTOFOCUS if set, check which window is under the mouse and gives it focus if it hasn't already ; then send scroll event to the control under the mouse ; original code from Shimanov: http://www.autohotkey.com/forum/viewtopic.php?t=6772#54821 { Global _WHEELACC, _WHEELMAXN, _WHEELAUTOFOCUS Static t, s   if ( A_TickCount > 500+t) { t := A_TickCount s :=0x780000 } else if (s < _WHEELMAXN) s += _WHEELACC  MouseGetPos x, y, hwnd h := DllCall("WindowFromPoint", "int", x, "int", y) if _WHEELAUTOFOCUS && (hwnd<>WinExist("A")) WinActivate, ahk_id %hwnd% SendMessage, 0x20A, d*s,(y<<16)|x,, ahk_id %h% }   WheelUp:: EasyWheel(1) WheelDown:: EasyWheel(-1)  

(Взято из темы, связанной в комментарии скрипта)

AHK может сделать все что угодно: 3