用于更改 RButton 行为的 AHK 脚本
AHK script to change RButton Behavior
我想做一个脚本,让我每次按下鼠标都可以点击一次,但是,如果我不立即松手,而是持有人民币超过 0.25 秒,它会在释放时再次点击。
基本上可以让我正常使用人民币,只要我不持有它太久但允许我双击。
这是一种解决方法,因为如果我点击得太快,我的鼠标按钮会卡住,而且我无法获得新的 atm。
这样做的目的是为了能够在 PS 上使用我的鼠标并玩我玩过的一款游戏:Black Ops 2,同时我节省了足够的钱买一个新鼠标。在游戏的上下文中,我希望能够使用 Toggle ADS 作为基础,并且能够通过单击默认使用切换,但也能够在不更改游戏配置。
我对 AHK 不是很精通,这就是我目前所掌握的全部,hold 工作正常,但是如果我不 hold,它会双击,这很烦人。
RButton Down::
Send {Click, Right}
keywait RButton, t.25
if errorlevel
keywait RButton,
Send {RButton Up}
return
您的 if
块似乎缺少一些大括号;但我认为您可以使用
这样简单的东西来实现正确的 double-click 功能
RButton::
KeyWait RButton, T.25
numberOfClicks := errorLevel + 1
Send {Click Right %numberOfClicks%}
return
您可以对多个 KeyWait
进行一些欺骗,但由于 AHK 的单线程性质,我不建议在任何情况下在热键标签内进行耗时处理。
这里是我推荐的非常简单的东西:
~*RButton::RClickTime := A_TickCount
~*RButton Up::
if (A_TickCount - RClickTime >= 250)
Click, Right
return
所以首先当我们按下 RButton 时(注意热键名称没有“按下”状态,键名本身意味着它被按下)我们用 A_TickCount
存储当前系统时间。
我们对热键使用 ~
修饰符,因此不会消耗按键本身。
并且使用了 *
修饰符,因此按住例如Ctrl 或 Shift 等不会使热键失效。
然后在 RButton 释放 (RButton Up::
) 时,我们将当前系统时间与存储的系统时间进行比较,看看是否超过 250 毫秒。如果是这样,我们将在此处发送另一个带有 Click, Right
(don't use a send command 的右键单击,它并不是真正用于此目的)。
~RButton:: ;*When Right Mouse Button is Down, do the following.*
keywait RButton, T.25 ;*Wait (250 milliseconds) for it to be released.*
if errorlevel { ;*When it exceeds the said time*
keywait RButton ;*Wait for it to be released*
Send, {RButton Up} ;*Send Right Mouse Button up*
}
return
我想做一个脚本,让我每次按下鼠标都可以点击一次,但是,如果我不立即松手,而是持有人民币超过 0.25 秒,它会在释放时再次点击。
基本上可以让我正常使用人民币,只要我不持有它太久但允许我双击。
这是一种解决方法,因为如果我点击得太快,我的鼠标按钮会卡住,而且我无法获得新的 atm。
这样做的目的是为了能够在 PS 上使用我的鼠标并玩我玩过的一款游戏:Black Ops 2,同时我节省了足够的钱买一个新鼠标。在游戏的上下文中,我希望能够使用 Toggle ADS 作为基础,并且能够通过单击默认使用切换,但也能够在不更改游戏配置。
我对 AHK 不是很精通,这就是我目前所掌握的全部,hold 工作正常,但是如果我不 hold,它会双击,这很烦人。
RButton Down::
Send {Click, Right}
keywait RButton, t.25
if errorlevel
keywait RButton,
Send {RButton Up}
return
您的 if
块似乎缺少一些大括号;但我认为您可以使用
RButton::
KeyWait RButton, T.25
numberOfClicks := errorLevel + 1
Send {Click Right %numberOfClicks%}
return
您可以对多个 KeyWait
进行一些欺骗,但由于 AHK 的单线程性质,我不建议在任何情况下在热键标签内进行耗时处理。
这里是我推荐的非常简单的东西:
~*RButton::RClickTime := A_TickCount
~*RButton Up::
if (A_TickCount - RClickTime >= 250)
Click, Right
return
所以首先当我们按下 RButton 时(注意热键名称没有“按下”状态,键名本身意味着它被按下)我们用 A_TickCount
存储当前系统时间。
我们对热键使用 ~
修饰符,因此不会消耗按键本身。
并且使用了 *
修饰符,因此按住例如Ctrl 或 Shift 等不会使热键失效。
然后在 RButton 释放 (RButton Up::
) 时,我们将当前系统时间与存储的系统时间进行比较,看看是否超过 250 毫秒。如果是这样,我们将在此处发送另一个带有 Click, Right
(don't use a send command 的右键单击,它并不是真正用于此目的)。
~RButton:: ;*When Right Mouse Button is Down, do the following.*
keywait RButton, T.25 ;*Wait (250 milliseconds) for it to be released.*
if errorlevel { ;*When it exceeds the said time*
keywait RButton ;*Wait for it to be released*
Send, {RButton Up} ;*Send Right Mouse Button up*
}
return