在AHK中使用dropdownlist和gui文本框的条件行为
问题描述:
假设我选择“Option1”和“Color1”。然后我写了一些东西进入自由文本区域。现在当我按OK时,它将执行条件标签。由于Option1/color1被选中,它将执行sendinput命令:在AHK中使用dropdownlist和gui文本框的条件行为
blablala%text1%blabla%text2%。
如果我挑不过“选项1”和“色”会做一个sendinput与
布拉布拉与他的妻子和她的妻子的text1然后狗做文本2。
我已经管理了这段代码的一部分。我的问题是,当我从选择列表中选择时,无论我写什么,它都会执行脚本。我希望它在单击OK并显示text1/text2时执行,无论我想要放置它。
#NoEnv
Gui, 1: font, s10 , Verdana
Gui, 1: Add, DropDownList, gDropDownList vDropDownList1 R2 choose1, Option1|Option2
Gui, 1: Add, DropDownList, gDropDownList vDropDownList2 R2 choose1, Color1|Color2
Gui, 1:Add, text,, Text1
Gui, 1:Add, edit, vText1
Gui, 1:Add, text,, Text2
Gui, 1:Add, edit, vText2
Return
DropDownList:
Gui, 1:Submit,NoHide
if (dropdownlist1 = "Option1") && (dropdownlist2 = "Color1")
{
MsgBox, A flower said to a be: %text1%. The bee replied %text2%
Gui 1: hide
}
else if (dropdownlist1 = "Option1") && (dropdownlist2 = "Color2")
{
MsgBox, You picked %text1% and %text2%
Gui 1: hide
}
else if (dropdownlist1 = "Option2") && (dropdownlist2 = "Color1")
{
MsgBox, A girl said %text1% when you picked %text2%
Gui 1: hide
}
else if (dropdownlist1 = "Option2") && (dropdownlist2 = "Color2")
{
MsgBox, Blabla %text1% blabla %text2%
Gui 1: hide
}
return
#j::
Gui 1: show,, DropDownGui
return
答
我管理这个代码的TODO部分。我的问题是,当我从下拉列表中选择 时,无论我写什么,它都会执行脚本。
这是因为你有一个gosub连接到你的下拉列表。这就是gDropDownList
中的g
。当你从中选择一些东西时,它会运行DropDownList标签。
您可以从选项字段中完全删除gDropDownList
,也可以制作一个标签,通过制作gui提交标签在点击后保存您的选择。
尝试这样:
#NoEnv
Gui, 1:font, s10 , Verdana
Gui, 1:Add, DropDownList, gGuiSave vDropDownList1 R2 choose1, Option1|Option2
Gui, 1:Add, DropDownList, gGuiSave vDropDownList2 R2 choose1, Color1|Color2
Gui, 1:Add, text,, Text1
Gui, 1:Add, edit, vText1
Gui, 1:Add, text,, Text2
Gui, 1:Add, edit, vText2
Return
GuiSave:
Gui, 1:Submit,NoHide
return
DropDownList:
Gui, 1:Submit,NoHide
if (dropdownlist1 = "Option1") && (dropdownlist2 = "Color1")
{
MsgBox, A flower said to a be: %text1%. The bee replied %text2%
Gui 1: hide
}
else if (dropdownlist1 = "Option1") && (dropdownlist2 = "Color2")
{
MsgBox, You picked %text1% and %text2%
Gui 1: hide
}
else if (dropdownlist1 = "Option2") && (dropdownlist2 = "Color1")
{
MsgBox, A girl said %text1% when you picked %text2%
Gui 1: hide
}
else if (dropdownlist1 = "Option2") && (dropdownlist2 = "Color2")
{
MsgBox, Blabla %text1% blabla %text2%
Gui 1: hide
}
return
#j::
Gui 1: show,, DropDownGui
return