Autohot键变量功能不全局

时间:2018-12-11 22:11:08

标签: function variables autohotkey

我正在尝试制作一个函数,该函数需要坐标,复制该字段并命名一个变量,但是该变量似乎是局部变量,并且不会从函数中转移出去。坐标(x,y)和延迟似乎工作正常,但是desc变量总是空白。请帮忙!

newest(x, y, delay, variable)

   {


 sleep, %delay%



    click, %x%,%y%  ;desc machine field
    clipboard =           ; empty the clipboard 
    Loop
    {
        If GetKeyState("F2","P")  ; terminate the loop whenever you want by pressing F2
        break
        Send {Ctrl Down}c{Ctrl Up}
            if  clipboard is not space   
                break  ; Terminate the loop

        }
    variable := clipboard ;
    msgbox %variable%
    return 

   }

^k::

newest(654, 199, 200, desc)

msgbox %desc%

return

1 个答案:

答案 0 :(得分:1)

  

从函数的角度来看,参数本质上是相同的   除非定义为 ByRef 。否则将它们作为局部变量。

ByRef使函数的一个参数成为变量的别名,从而允许函数为该变量分配新值。

newest(x, y, delay, ByRef variable){
    sleep, %delay%
    click, %x%,%y%   ; desc machine field
    clipboard =           ; empty the clipboard 
    Loop
    {
        If GetKeyState("F2","P")  ; terminate the loop whenever you want by pressing F2
            break
        Send {Ctrl Down}c{Ctrl Up}
        If  clipboard is not space   
            break  ; Terminate the loop
    }
    variable := clipboard
    msgbox %variable%
    return 
}

^k::
    newest(54, 199, 200, desc)
    msgbox %desc%
return