Autohotkey条件事件消耗

时间:2012-04-10 05:51:49

标签: autohotkey

我正在尝试构建以下手势: 单击并按住鼠标右键,单击鼠标左键=>触发浏览器后退键

RButton & LButton Up::
    Send {Browser_Back}
return

~RButton::return

问题是我想在按下此热键后释放右键时使用最后一个“向右按钮”。实际上,我不希望看到上下文菜单弹出。

任何帮助?

编辑:如果我们能保持正确的阻力,那就太好了。

1 个答案:

答案 0 :(得分:3)

我假设您不想一直阻止右键菜单。

rbutton & lbutton::Send, {Browser_Back}

rbutton::click r

否则排除第二行。

更新:由于您现在已指定使用“右键拖动”
这是另一个想法(注意:我没有使用右拖,所以我无法确认任何事情):

rbutton::
Keywait, rbutton, T0.5
If (ErrorLevel) {
    Click r d
    Keywait, rbutton
    Click r u
} Return

lbutton::
if GetKeyState("rbutton", "P")
    Send, {Browser_Back}
Else {
    Click d
    Keywait, lbutton
    Click u
} Return

您必须按住rbutton并左键单击然后在0.5秒内释放rbutton,或者提高时间。
据我所知,基本版本根本不起作用。这是因为使用&只会使rbutton在释放后触发。

如果这仍然不起作用,你可以尝试更复杂的事情:link
更新:我只想到了另一种变体:

Lbutton::
if GetKeyState("rbutton", "P")
    Send, {Browser_Back}
Else {
    Click d
    Keywait, lbutton
    Click u
} Return

rbutton up::
If (a_priorhotkey != "Lbutton" or a_timeSincePriorHotkey > 500)
    Click r
Return