尝试修复自动热键代码,当我按下一个键两次时它会起作用

Trying to fix autohotkey code which do a function when I press a key twice

我想在 aoutohotkey 中编写代码来执行此操作:如果我的词典应用程序处于活动状态,那么当我按下“ j ”键时,它会单击特定坐标(在此坐标中有一个打开的 Kmplayer window)然后回车再发送Space。这是我的代码:

#IfWinActive Oxford Advanced Learner's Dictionary
j::
    If (A_ThisHotkey = A_PriorHotkey) && (A_TimeSincePriorHotkey < 500)
        Click, 1149,305
        sleep,100
        send,{Enter}
        sleep,100
        send,{space}
return

但它并不完美。有时它可以工作,但大多数时候当我按两次“j”键时,它只是发送 space 并输入。

一些细节:

  1. 我在使用 aoutohotkey 方面经验不多我只是在 reddit 上找到了一个双击按键代码并使用了它。

  2. 对于滑动 window 到打开的 Kmplayer 我没有找到比 Click, 1149,305 更好的解决方案,因为与许多应用程序不同,组合键 Alt+Esc 没有将 windows 换成牛津词典应用程序。 (可能是这个点击导致了问题)

如果您的 if 语句主体不止一行,则需要 { }s。

#IfWinActive Oxford Advanced Learner's Dictionary
j::
    if (A_ThisHotkey = A_PriorHotkey && A_TimeSincePriorHotkey < 500)
    {
        Click, 1149,305
        sleep,100
        send,{Enter}
        sleep,100
        send,{space}
    }
return

不确定这是否是您唯一的问题。
我无法理解你的第二个细节想表达的意思。