使用AHK中的dropdownlist和gui文本框的条件行为

时间:2017-05-25 20:25:53

标签: c++ autohotkey

让我们说我选择"选项1"和" Color1"。然后我在自由文本区域写了一些东西。现在,当我按下OK时,它将执行条件标签。由于选择了Option1 / color1,它将执行sendinput命令:

  

blablala%text1%blabla%text2%。

如果我选择" option1"和"颜色"它将使用

进行发送输入
  blabla与他的妻子和她的妻子text1然后狗做了text2。

我管理过这段代码的一部分。我的问题是,当我从下拉列表中选择时,无论我写什么,它都会执行脚本。我希望它在单击“确定”并显示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

1 个答案:

答案 0 :(得分:1)

  

我已经管理过这段代码的部分内容。我的问题是,当我选择   从下拉列表中,无论我写什么,它都会执行脚本。

那是因为你的下拉列表附有一个gosub。这就是g中的gDropDownList。当您从中选择某些内容时,它会运行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