如果单击鼠标,则执行一项操作,如果按住鼠标,则执行正常操作

时间:2015-04-03 14:44:45

标签: autohotkey

我希望我的代码能够在单击鼠标时注册,并在发生这种情况时执行某些操作,但是如果按住鼠标也能够注册,而不是在按住鼠标时中断鼠标案件。例如,

    If AutoCAD is open
        If mbutton is clicked
            click the escape key
        If mbutton is held down
            be able to use the mbutton held down as usual
    End

我已经尝试了几种不同的方法来做到这一点,但我并不知道如何做到这一点。我已经获得了#34;如果AutoCAD已打开",并且"单击转义键"如果按下部分"

,请将部件按下,而不是按顺序使用按钮

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:2)

这有点棘手。相应地更改#IfWinExist行。您可以将持续时间调整为您认为“持有”MButton

的持续时间
SetTitleMatchMode, 2

#IfWinExist AutoCAD

~MButton::
    duration := 100
    start := A_TickCount

    While(GetKeyState("MButton"))
    {
        if ((A_TickCount - start) > duration)
        {
            KeyWait, MButton
            Send {MButton Up}
            Return
        }
    }
    Send, {Escape}
    Return

#IfWinExist AutoCAD

答案 1 :(得分:0)

如果我理解正确,您正在搜索 UP 关键字:

  

单词UP可以跟随热键的名称以使热键进入   释放钥匙时触发,而不是按下钥匙时触发。

documentation

#if autocad()
MButton Up::
send {escape}
return
#if

autocad() {
    return true
}