0

最初の GUI を作成しようとしています。私は今日 AHK を使い始めたばかりですが、ほとんどの場合、非常に使いやすいと感じています。しかし、私は1つのことにこだわっています。この GUI を作成してボタンを表示すると、選択内容に応じて特定のテキストが入力されます。ボタンを選択すると、正しいテキストが入力されますが、4 回入力されます。ボタンの 1 つを外したので、3 つしかありませんでしたが、それでも 4 回入力することになります。一度だけ入力するようにするにはどうすればよいですか?

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
4

1 に答える 1

1

まだテストしていませんが、あなたの送信がこれを開始している可能性があります。最初にキーボード シーケンスを送信してから GUI を非表示にすることを忘れないでください。したがって、この状況では、送信した時点で GUI がまだアクティブになっています。最初に GUI を非表示にしてから送信するか、最初に送信を MsgBox に置き換えてテストします。また、最初に !{Esc} を送信して、データを送信する前にフォーカスを前のアプリケーションに戻すこともできます。そうすれば、GUI を非表示にする必要がなくなります。

OK、私の仮定をテストし、!{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
于 2013-03-30T07:51:42.183 に答える