我的 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,输入 1,2,3,4
或者简单地
按下f以触发“2,ENTER”
按下v以触发“3,ENTER”
我看过这个代码(此处链接代码_热键)看看这个(此处链接代码_KEYPRESS):
调查代码:
#SingleInstance force
Input, Key, L1
MsgBox You pressed %Key%!
OnExit ExitSub
return
ExitSub:
ExitApp
我似乎不知道如何将其合并到 F1触发脚本并接受 GUI 原始代码或接受f或中v,其中任何一行都会结束脚本并且在F1按下之前不会再次运行。
回顾: F1触发脚本 2,Enter 或者 3,Enter 或者 4,Enter 或者 f 或者 v ... 结束脚本直到再次按下 F1。
答案1
按下时窗口不执行任何操作就关闭的原因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 错误:您的窗口标题是“Enter Selection”。请使用以下几行
#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