我正在尝试制作一个函数,该函数需要坐标,复制该字段并命名一个变量,但是该变量似乎是局部变量,并且不会从函数中转移出去。坐标(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
答案 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