如果光标在不活动的窗口上,AutoHotkey将发送默认按钮操作



我编写了以下代码,以便重新映射第4和5个鼠标按钮以向上滚动&向下滚动:

代码:

XButton2::
While GetKeyState("XButton2","P")
{
Send {WheelUp 1}
Sleep 120
}
return

XButton1::
While GetKeyState("XButton1","P")
{
Send {WheelDown 1}
Sleep 120
}
return

问题:

如果光标在活动窗口上,一切都可以。

但是,当我单击xbutton1(4-鼠标按钮(或xbutton2(第5鼠标按钮(时,将光标上一窗上的窗口上的窗口> 有时 ,它将默认操作发送到该窗口。

例如,如果光标超过chrome(不活动(,而活动窗口是任务管理器,则它将发送默认的" back back" back"操作,而不是脚本"滚动"中指定,但是当我单击chrome时并使其活跃,一切都起作用

问题:

有没有一种方法可以禁用默认操作?因此,如果您不握住按钮(While GetKeyState("XButton1","P")(,那就什么都不做?

尝试一下。只有当某些窗口处于活动状态并且没有返回时,它才能使其如此之高。我没有额外的鼠标按钮,所以我用常规键盘键对其进行了测试,并且可以使用。

loop
 {
 sleep,50
 #if WinActive("ahk_exe chrome.exe") or WinActive("ahk_exe explorer.exe") ;;hotkeys work only if chrome.exe or explorer.exe is active
  {
  XButton2::
  While GetKeyState("XButton2","P")
   {
   Send {WheelUp 1}
   Sleep 120
   }
  XButton1::
  While GetKeyState("XButton1","P")
   {
   Send {WheelDown 1}
   Sleep 120
   }
  }
 #if ! WinActive("ahk_exe chrome.exe") ;;if chrome isn't active XButton1 and XButton2 return nothing
  {
  XButton1::return
  XButton2::return
  }
 }

最新更新