1

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

2 ответа2

2

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

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

KatMouse

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

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