如何在包含单独文件的程序中使用计时器? 这是我的例子:
SCRIPT1 :
#include Script2.ahk
#include Script3.ahk
Timer()
Hello()
Exit
SCRIPT2 :
global variable
Hello(){
MsgBox, Messsage1
}
Script3 :
Timer(){
SetTimer, Message, 1000
}
Message:
MsgBox, Messsage2
SetTimer, Message, Off
return
此程序将立即显示消息框“Message2”并关闭。 但我想在开始后一秒钟获得“Message1”和“Message2”。可以这样做吗?
答案 0 :(得分:1)
您需要阅读两个链接。
http://www.autohotkey.com/docs/commands/_Include.htm
当你#include文件时,内容只是简单地插入主脚本中的那个位置。所以你的Script1看起来像:
global variable
Hello(){
MsgBox, Messsage1
}
Timer(){
SetTimer, Message, 1000
}
Message:
MsgBox, Messsage2
SetTimer, Message, Off
return
Timer()
Hello()
Exit
脚本启动时,立即运行自动执行部分: http://www.autohotkey.com/docs/Scripts.htm#auto
所以第一次返回的所有内容都会运行(跳过这些函数)。这就是“Message2”立即显示和“Message1”从未显示的原因。
解决方案:
如果必须在include文件中包含子例程标签,那么可以在自动执行部分之后将#include
放在脚本的底部:
Timer()
Hello()
Exit
#include Script2.ahk
#include Script3.ahk
但是,出于这个原因,将子例程标签放在#include文件中并不是一个好习惯。除非您理解本文中提到的后果。