AHK - 在函数内部睡眠不起作用

时间:2015-12-14 06:19:08

标签: function sleep autohotkey

以下代码按预期工作:

time := 1000

<^q::
    Sleep time
    SendInput {F9}
return

但是,以下代码没有(它完全忽略了Sleep),我不确定为什么:

time := 1000

<^q:: 
    doKeys()
return

doKeys()
{
    Sleep time
    SendInput {F9}
}

2 个答案:

答案 0 :(得分:3)

您的第一个示例有效,因为Subroutine (gosub)中包含的代码可以访问变量时间。

Functions

  

一个函数类似于子程序(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会向您发出警告。