为什么我的自动热键脚本无法正常工作?

问题描述

我将AutoHotkey用于Windows。我想编写一个脚本,以便使用鼠标中键单击(我之前复制的文本)粘贴到计算机上程序牛津词典的搜索栏中。并且在关闭程序窗口时,单击鼠标中键后,会自动打开窗口并执行我想要的相同操作(将复制的单词粘贴到程序的搜索栏中)。我写这段代码

MButton::
IfWinExist,Oxford Advanced Learner's Dictionary
{
   WinActivate
   Click,182,133,2
   Send,^a{Delete}
   sleep,100
   Send,^v{Enter}
}
else
{   
   Run,"E:\dictionary oxford\OALD9.exe"
   WinActivate,Oxford Advanced Learner's Dictionary
   sleep,500
   Click,^v{Enter}
}   
return

运行代码时,它只是执行我想要的第一个任务。打开时,它将粘贴到“牛津词典”的搜索栏中。但是当它关​​闭时,单击鼠标中键后,它只是打开程序,而没有将单词粘贴到搜索栏中。

解决方法

WinWait是您的朋友。 Documentation

MButton::
IfWinExist,Oxford Advanced Learner's Dictionary
{
   WinActivate
   Click,182,133,2
   Send,^a{Delete}
   Sleep,100
   Send,^v{Enter}
}
else
{   
   Run,"E:\dictionary oxford\OALD9.exe"
   WinWait,Oxford Advanced Learner's Dictionary,4
   WinActivate,Oxford Advanced Learner's Dictionary
   Sleep,500
   Click,^v{Enter}
}   
return

编辑:您可能还需要考虑RunWait。 Documentation