Windows 中的 X 滚轮

Windows 中的 X 滚轮

有没有办法将鼠标滚轮事件发送到鼠标指针下方的任何窗口,即使它不是活动窗口?我希望拥有 x-scrollwheel 功能,而无需打开 x-mouse。

答案1

我不确定 Windows 本身是否支持此功能,但一个名为 KatMouse 的程序应该可以做到这一点:

KatMouse 实用程序的主要目的是增强带滚轮的鼠标的功能,提供“通用”滚动功能:移动鼠标滚轮将滚动鼠标光标正下方的窗口(而不是带有键盘焦点的窗口,这是 Windows 操作系统的默认设置)。这大大提高了鼠标滚轮的实用性。

猫鼠

答案2

自动热键!

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

相关内容