我编写了以下代码,以便重新映射第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
}
}