尝试修复当我按两次键时执行功能的自动热键代码

问题描述

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

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

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

一些细节:

  1. 我在使用自动热键方面没有太多经验,我只是在 reddit 上找到了一个双击按键代码并使用了它。

  2. 对于打开 Kmplayer 的窗口,我没有找到比 Click,305 更好的解决方案,因为与许多应用程序不同,组合键 Alt+Esc 不会为牛津词典应用程序交换窗口。 (也许这个点击会导致问题)

解决方法

如果 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,{space}
    }
return

不确定这是否是您唯一的问题。
我无法理解你的第二个细节想说什么。