Есть ли способ отправить события колесика мыши в любое окно под указателем мыши, даже если это не активное окно? Я хотел бы иметь возможности x-scrollwheel без необходимости включать x-mouse.
2 ответа
2
Я не уверен, поддерживается ли это в Windows изначально, но программа под названием KatMouse должна сделать именно это:
Основная цель утилиты KatMouse - улучшить функциональность мышей с помощью колеса прокрутки, предлагая «универсальную» прокрутку: перемещение колеса мыши будет прокручивать окно непосредственно под курсором мыши (а не окно с фокусом клавиатуры, которое по умолчанию). в ОС Windows). Это значительное увеличение полезности колесика мыши.
2
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