关于GuiControl与GuiControlGet的返回值

AHK中,GuiControl GuiControlGet 是操作GUI的两个极其重要命令,可以说,没有这两个命令,AHK对Gui控件的操作就无法实现。但在具体使用中,经常会遇到一个问题:我使用了这个命令,到底执行成功了没有?某些控件,如Text、Edit会改变其内容更改,我们可以察觉到,但有的命令就没这么走运了,比如:

GuiControl, ChooseString, ControlID, String

如果使用该命令对 DropDownList 控件进行操作,操作结果就不容易看出来了。某些时候,该命令并没有正确执行,将有可能影响后续操作。

GuiControl GuiControlGet 并不是函数,没有返回值,那要如何才能知道命令有没有执行成功呢?

其实,AHK对此内置了一个解决方法,就是使用错误捕获,也就是根据返回的 ErrorLevel 值进行判断:

此命令失败时会抛出异常. 想了解更多信息, 请参阅 运行时错误。
如果指定的窗口/控件不存在或由于其他问题使得命令无法工作,则 ErrorLevel 被置为 1,否则被置为 0。

到此,问题迎刃而解。

我们可以在 GuiControl GuiControlGet 的下一行直接获取 ErrorLevel 的值,并根据该值分别执行不同的操作。

PS:AHK 对大部分命令都使用内置变量 ErrorLevel 获取返回值,灵活使用这个内置变量,可以让我们更直接的获取命令的执行情况,并以此提高程序/脚本的质量。

posted @ 2013-12-19 13:45  cui-YF  阅读(690)  评论(0编辑  收藏  举报