按住鼠标按钮时 AHK 发送过多事件的解决方案?

Solution to AHK sending too many events when holding down a mouse button?

当使用三种不同的方法按住鼠标左键时:

Mouseclick, left, 0, 0, 1, , D, R

Send {LButton down}

Click down

我正在制作宏的游戏将我注销,抱怨我发送了太多操作。我自己将其作为脚本进行了测试,例如:

F3::
    Click down
    return

所以不可能是其他代码导致的。

我想知道是否有任何我可以使用的设置(我的意思是 CoordMode, Mouse, Screen 之类的设置)或任何其他解决方案来阻止 AHK 用于模拟按住鼠标按钮的任何快速事件发送.我可以尝试任何可能的修复方法吗?我愿意测试任何想法。

嗯,你可以像这样介绍一个 Sleep

LButton::
while (GetKeyState("LButton", "P"))
{
    MouseClick, left
    Sleep, 100
}
return

虽然我个人不喜欢通过相同的鼠标单击将鼠标单击绑定到行为,因为它会导致难以摆脱的结果。

这是一个带有可切换热键的示例。

Insert::
SendInput, {LButton Down}
loop
{
    Sleep, 100
    if getkeystate("Insert", "p") ; Hold for a second as the Sleep will delay recognition.
    {
        SendInput, {LButton Up}            
        break
    }
}
return

根据评论编辑:

Insert::
SendInput, {LButton Down}
KeyWait, Insert, D
SendInput, {LButton Up}
return