私のGUIは正常に動作します。
これが私の編集ボックス、GUIのスクリーンショットです:
F1 スクリプトを起動します。
次に、1、2、3、または4を入力して、[ Submit またはヒット ENTER; どのEnterは現在受け入れられていませんが、AHKの世界で起こっている隠しモードまたは私には知られていない何かにそれを送ります。 --davidmneedhamによって修正されました-ありがとう!
コード:完全に期待どおりに機能していません
#NoEnv
#SingleInstance Force
F1::
aa := "1) opt 1 or (f)"
bb := "2) opt 2 (v)"
cc := "3) open opt 3"
dd := "4) open opt 4"
Gui, Add, Text, x50 y50 w100 h30, %aa%
Gui, Add, Text, x50 y70 w100 h30, %bb%
Gui, Add, Text, x50 y90 w300 h30, %cc%
Gui, Add, Text, x50 y110 w300 h30, %dd%
Gui, Add, Text, x50 y140 w50 h20, Selection:
Gui, Add, Edit, x100 y140 w100 h20 vChoice
Gui, Add, Text, x205 y140 w300 h30, (press ENTER)
;Gui, Add, Button, x50 y170 w50 h30 default gCancel, Cancel
;Gui, Add, Button, x130 y170 w50 h30 gSubmit, Submit
;Enter command fix by davidmneedham on StackExchangs thanks!
Gui, Add, Button, x50 y170 w50 h30 gCancel, Cancel
Gui, Add, Button, x130 y170 w50 h30 default gSubmit, Submit
Gui, Color, EEAA99
Gui +LastFound ; Make the GUI window the last found window for use by the line below.
WinSet, TransColor, ff00ff
Gui, Show, w350 h250, Enter Selection
;I even tried a while loop, here but it caused other problems
;while(true)
;{
; If (GetKeyState("f"))
; {
; msgbox, f pressed
; break
; }
;}
return
Submit:
Gui, Submit
if (Choice = "2")
{
msgbox chose 2
}
else if (Choice = "3")
{
msgbox chose 3
}
else if (Choice = "4")
{
msgbox chose 4
}
else
{
msgbox chose 1
}
ButtonCancel:
Gui, destroy
return
;One suggestion I tried this
#If WinActive("Download ahk_exe AutoHotkey.exe")
f:: Send 2{Tab 2}{Enter}
v:: Send 3{Tab 2}{Enter}
#If
私が取り入れようとしているのはこれです:
F1、ENTER 1,2,3,4
または明らかに
押す f 「2、ENTER」を発射する
押す v 「3、ENTER」を発射する
このコードを (LINK CODE HERE_HOTKEYS) から見て、これを見て (LINK CODE HERE_KEYPRESS) :
コードの調査:
#SingleInstance force
Input, Key, L1
MsgBox You pressed %Key%!
OnExit ExitSub
return
ExitSub:
ExitApp
これをどのように組み込むのかわからない F1 スクリプトを起動してGUIの元のコードを受け入れるOR accept f または v、この行のいずれかがスクリプトを終了し、それまで再実行されません F1 押された場合。
要約: F1 スクリプトを起動します 2、 Enter または 3、 Enter または 4、 Enter または f または v ... F1がもう一度押されるまでスクリプトを終了します。
を押しても何もせずにウィンドウが閉じる理由 Enter [キャンセル]ボタンがデフォルトのアクションとしてリストされているということです。
これらの行を変更します。
Gui, Add, Button, x50 y170 w50 h30 default gCancel, Cancel
Gui, Add, Button, x130 y170 w50 h30 gSubmit, Submit
そして、[送信]ボタンをデフォルトのアクションにします。
Gui, Add, Button, x50 y170 w50 h30 gCancel, Cancel
Gui, Add, Button, x130 y170 w50 h30 default gSubmit, Submit
状況依存ホットキーが機能しない理由は、WinTitleが間違っているためです。ウィンドウタイトルは「EnterSelection」です。代わりに次の行を使用してください
#If WinActive("Enter Selection")
f:: Send 1{Tab 2}{Enter}
v:: Send 2{Tab 2}{Enter}
#If
完全な機能スクリプトは以下のとおりです:
#NoEnv
#SingleInstance force
F1::
aa := "1) opt 1 or (f)"
bb := "2) opt 2 (v)"
cc := "3) open opt 3"
dd := "4) open opt 4"
Gui, Add, Text, x50 y50 w100 h30, %aa%
Gui, Add, Text, x50 y70 w100 h30, %bb%
Gui, Add, Text, x50 y90 w300 h30, %cc%
Gui, Add, Text, x50 y110 w300 h30, %dd%
Gui, Add, Text, x50 y140 w50 h20, Selection:
Gui, Add, Edit, x100 y140 w100 h20 vChoice
Gui, Add, Text, x205 y140 w300 h30, (press ENTER)
Gui, Add, Button, x50 y170 w50 h30 gCancel, Cancel
Gui, Add, Button, x130 y170 w50 h30 default gSubmit, Submit
Gui, Color, EEAA99
WinSet, TransColor, ff00ff
Gui, Show, w350 h250, Enter Selection
return
#If WinActive("Enter Selection")
f:: Send 1{Tab 2}{Enter}
v:: Send 2{Tab 2}{Enter}
#If
Submit:
Gui, Submit
if (Choice = "2")
{
msgbox chose 2
}
else if (Choice = "3")
{
msgbox chose 3
}
else if (Choice = "4")
{
msgbox chose 4
}
else
{
msgbox chose 1
}
Gui, Destroy
return
Cancel:
Gui, Destroy
return