autohotkey - 在 AutoHotKey 中,如果 LButton 在热键上下文中使用,但如果在其他地方使用,则如何阻止发送?

标签 autohotkey

我有这个脚本:

~LButton & RButton::
    Click Middle
Return

据说当我按下 LButtonRButton一起,它们将作为 MButton 工作.这确实有效,但它会发送 LButton以及。如果我删除 ~来自热键前缀,LButton完全停止工作。

我尝试了各种方法来尝试使其工作。

这是不是 工作:
#If GetKeyState("LButton", "P")
RButton::
    Click Middle
Return

这也不起作用:
middleclicktrigger := False

LButton & RButton::
    middleclicktrigger := True
    Click Middle
    middleclicktrigger := False
Return

~LButton::
    If (middleclicktrigger) {
        BlockInput, Mouse
    }
Return

这应该有效,但我遇到了一个问题,我 不能 按住并拖动 LButton正常使用。它通过简单的左键单击工作正常,但是当它不与热键组合中的鼠标右键一起使用时,我需要它作为普通的鼠标左键工作:
middleclicktrigger := False

LButton & RButton::
    middleclicktrigger := True
    Click Middle
    middleclicktrigger := False
Return

LButton::
    IF (!middleclicktrigger) {
        Click down
    }
Return

LButton up::
    IF (!middleclicktrigger) {
        Click up
    }
Return

最佳答案

好的,我以最复杂的方式解决了它。如果您对此有更清晰的方法,请给我,因为我对此感到不舒服,但它确实有效,呵呵。

middleclick := False
leftclick := False
rightclick := False

Loop {
    If (GetKeyState("LButton", "P") && GetKeyState("RButton", "P") && !middleclick) {
        middleclick := True
        BlockInput, Mouse
        Click Middle
        SetTimer, middleclickfalse, -1000
    } Else If (GetKeyState("LButton", "P") && !leftclick && !middleclick) {
        leftclick := True
        Click down
    } Else If (GetKeyState("RButton", "P") && !rightclick && !middleclick) {
        rightclick := True
        Click down right
    }

    Sleep, 10
}

middleclickfalse:
    middleclick := False
Return

LButton up::
    If (!middleclick) {
        If (leftclick) {
            Click up
            leftclick := False
        }
    }
Return

RButton up::
    If (!middleclick) {
        If (rightclick) {
            Click up right
            rightclick := False
        }
    }
Return

关于autohotkey - 在 AutoHotKey 中,如果 LButton 在热键上下文中使用,但如果在其他地方使用,则如何阻止发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38400816/

相关文章:

autohotkey - 如何将 HotString 与变量和通配符一起使用?

windows - Autohotkey:如何清除 Windows 分配的大多数 Fn 热键?

python - 从 python 运行和处理外部应用程序

autohotkey - 热键重新启动自动热键脚本?

autohotkey - 在没有任何控件的窗口上使用 ControlClick 坐标

autohotkey - 如何在 autohotkey 中设置箭头热键?

autohotkey - 我是傻子吗?自动热键脚本的这一行有什么问题

autohotkey - 我想用 autohotkey 获取自午夜以来以毫秒为单位的当前时间

notepad++ - 如何让 AutoHotKey 在其他程序之前拦截热键?

random - 需要帮助 - 使用 Autohotkey 脚本的简单随机数生成器