为什么我从函数调用代码时得到?

时间:2013-06-21 14:21:51

标签: autohotkey

这是我试图通过函数调用的代码。

如果我单独使用它可以正常工作

#3::
FileRead, OutputVar, C:\temp\test.txt
msgbox %OutputVar%
#SingleInstance, force

Gui, Color, White
Gui, -caption +toolwindow +AlwaysOnTop
Gui, font, s30 bold, Arial
Gui, add, text, vTX cRed TransColor, %OutputVar%
Gui, Show, % "x" A_ScreenWidth-1500 " y" A_ScreenHeight-900 ,TRANS-WIN
WinSet, TransColor, White, TRANS-WIN
return

当我打电话把它放入功能并从那里调用它时,我得到以下错误。

:*:11::
Run calc.exe
numcodee()
return

numcodee()
{
FileRead, OutputVar, C:\temp\test.txt
msgbox %OutputVar%
#SingleInstance, force

Gui, Color, White
Gui, -caption +toolwindow +AlwaysOnTop
Gui, font, s30 bold, Arial
Gui, add, text, vTX cRed TransColor, %OutputVar%
Gui, Show, % "x" A_ScreenWidth-1500 " y" A_ScreenHeight-900 ,TRANS-WIN
WinSet, TransColor, White, TRANS-WIN
}
从函数
中调用它时

错误 enter image description here

1 个答案:

答案 0 :(得分:1)

GUI要求其变量保留的范围超出您的允许范围。我已经做了一段时间,因为我做了一些主要的AKH,但我猜你的OutputVar是导致错误的。修复此问题的方法只是从函数中移动数据,并将其列在文件中的上方某处

要记住的是,一旦你的函数结束,在它内部声明的所有变量都将超出范围,你将无法使用它们,GUI关注它将需要的东西将从它下面掉出来。