我是AutoHotKey的新手,到目前为止,我认为自己很幸运能够创建一个脚本来自动化窗口中大约90%的数据输入。我现在试图将其提升一个档次,并在我的数据输入脚本中添加警告/警告GUI。我想暂停正在运行的脚本并打开一个GUI,它会提醒我查看已输入的内容,如果某个特定条目看起来没问题,只需一个按钮即可继续操作,另一个按钮可以转出GUI和如果条目不正确,则为脚本的剩余部分。
这是我提出的一些代码,并附带一些伪代码以帮助显示我想要做的事情。
(Previous data entry script executes to this point)
Stop the script
Gui, New
Gui, Add, Text, 'n Check Authorization Number to be sure it is A1234 (FY 15). ; Wraps text
Gui, Add, Button, Default, Continue
Gui, Add, Button, Quit
Gui, Show, IMPORTANT!
If Continue button is clicked
----Continue with script
If Abort button is clicked
----Close the GUI
----Exit the entire script
(Resume where I left off with rest of the data entry script)
我已经阅读了AHK帮助文件,并且难以理解如何使这些按钮正常工作,以及如果我按下继续,如何正确地从GUI返回到脚本,或者如果我继续退出整个事情发现一个问题。我可以调整GUI的大小和按钮位置等内容;最重要的是正确使用GUI代码。有人可以帮助代码吗? (我上次编写的最后一个编程课是在2003年,所以我忘记了很多!)
答案 0 :(得分:7)
在你的情况下,GUI会有点过分。 AHK(以及其他许多语言)为简单的用户交互提供标准对话框,称为消息框。
Message boxes in AHK可以通过两种方式显示:
MsgBox, This is a simple message. Please click "OK".
MsgBox, 4, Attention, Here`, you can choose between "Yes" and "No".
在第二种情况下,我们声明了一个控制显示按钮的选项。您可以使用IfMsgBox
来检测用户点击的内容:
IfMsgBox, Yes
MsgBox, 4, Really?, Did you really mean "Yes"?
将这些部分组合在一起,我们可以要求用户决定是否要继续,而不需要创建GUI,只需几行:
; Option "1" is "OK/Cancel"
MsgBox, 1, IMPORTANT!, Check Authorization Number to be sure it is A1234 (FY 15).
IfMsgBox, Cancel
{
ExitApp
}
; do stuff
此代码也解决了您的其他问题:
消息框将暂停当前线程,直到用户解除对话框或超时(如果您特别声明超时)。
要完全停止执行脚本,我们使用ExitApp
。