GUI按钮创建文本4次

时间:2013-03-30 03:54:19

标签: autohotkey

我正在尝试创建我的第一个GUI。我今天刚刚开始使用AHK,并且大部分都发现它使用起来非常简单。我虽然坚持一件事。我创建了这个GUI来显示按钮,然后根据选择的内容输入某些文本。当我选择按钮时,它正在键入正确的文本,但它键入了四次。我已经取下了其中一个按钮,所以只有三个按钮,但它仍会输入四次。我需要做些什么来确保它只输入一次?

MyGUI:

#SingleInstance Force
Gui, +LastFound +AlwaysOnTop

GUI, Add, Button, x10 y10 w75 h25 gClick1, Button &1
GUI, Add, Button, x95 y10 w75 h25 gClick2, Button &2
GUI, Add, Button, x10 y45 w75 h25 gClick3, ButtonS &3
GUI, Add, Button, x95 y45 w75 h25 gClickCancel, &Cancel
GUI, Show, w200 h100,My GUI
Return

Click1:
Send The first button was selected
Gui Hide
Return

Click2:
Send The second button was selected
Gui Hide
Return

Click3:
Send The third button was selected
Gui Hide
Return

ClickCancel:
Send The cancel button was selected
Gui Hide
Return

1 个答案:

答案 0 :(得分:1)

我还没有测试过,但可能是你的发送正在启动它。请记住,您首先发送键盘序列然后隐藏GUI,因此在您发送的情况下,GUI仍然处于活动状态!尝试先隐藏GUI,然后发送或最初替换MsgBox发送的测试。在发送数据之前,您还可以先发送!{Esc}将焦点切换回上一个应用程序,这样您就不需要隐藏GUI。

确定只是测试了我的假设,添加了!{Esc},它按预期工作。

#SingleInstance Force
Gui, +LastFound +AlwaysOnTop

GUI, Add, Button, x10 y10 w75 h25 gClick1, Button &1
GUI, Add, Button, x95 y10 w75 h25 gClick2, Button &2
GUI, Add, Button, x10 y45 w75 h25 gClick3, ButtonS &3
GUI, Add, Button, x95 y45 w75 h25 gClickCancel, &Cancel
GUI, Show, w200 h100,My GUI
Return

Click1:
Send, !{Esc}
Send, The first button was selected
;Gui Hide
Return

Click2:
Send, !{Esc}
MsgBox, The second button was selected
;Gui Hide
Return

Click3:
Send, !{Esc}
MsgBox, The third button was selected
;Gui Hide
Return

ClickCancel:
Send, !{Esc}
MsgBox, The cancel button was selected
;Gui Hide
Return