以下代码按预期工作:
time := 1000
<^q::
Sleep time
SendInput {F9}
return
但是,以下代码没有(它完全忽略了Sleep),我不确定为什么:
time := 1000
<^q::
doKeys()
return
doKeys()
{
Sleep time
SendInput {F9}
}
答案 0 :(得分:3)
您的第一个示例有效,因为Subroutine (gosub)中包含的代码可以访问变量时间。
一个函数类似于子程序(Gosub),但它可以 接受来自其调用者的参数(输入)。另外,还有一个功能 可以选择向其调用者返回一个值。
time := 1000
<^q::
doKeys(time) ; Pass your variable to the function
return
doKeys(x) ; Set your function to accept a variable
{
Sleep x
SendInput {F9}
}
或者,您可以将变量声明为Global,以便无需将其传递给函数即可访问。
time := 1000
<^q::
doKeys()
return
doKeys()
{
global time
Sleep time
SendInput {F9}
}
答案 1 :(得分:2)
使变量成为全局:
time := 1000
<^q::
doKeys()
return
doKeys()
{
global time
Sleep time
SendInput {F9}
}
注意:强>
如果您使用#Warn
,如果代码中存在常见错误,AHK会向您发出警告。