使用以下代码
ControlCommand("Test Form", "", "[NAME:ctlMsgQueueCombo]", "ShowDropDown")
ControlSend("Test Form", "", "[NAME:ctlMsgQueueCombo]", "This is my default value (TEST) - First")
or
ControlCommand("Test Form", "", "[NAME:ctlMsgQueueCombo]", "ShowDropDown")
ControlSend("Test Form", "", "[NAME:ctlMsgQueueCombo]", "select", "This is my default value (TEST) - First")
它选择了组合框,但没有从列表中选择所需的"这是我的默认值(测试)-第一"。基本上,它是选择以t
开头的任何值。例如,第一个值为"TMP"。因此,它不是完全匹配,而是选择任何第一个字符匹配。如何强制它从列表中选择确切的字符串?
我也尝试过使用下面的代码,但似乎什么都不起作用。
WinWaitActive($title)
$Index = _GUICtrlComboBoxEx_FindStringExact($hcombo, $sText)
_GUICtrlComboBoxEx_SetCurSel($hcombo, $Index)
or following
WinWaitActive($title)
$Index = _GUICtrlComboBox_FindStringExact($hcombo, $sText)
_GUICtrlComboBox_SelectString($hcombo, $Index)
现在您使用的ControlSend参数不正确。以下将发送字符串"select",最后一个参数将被计算为0。
ControlSend("Test Form", "", "[NAME:ctlMsgQueueCombo]", "select", "This is my default value (TEST) - First")
正如它所期望的1或0作为最后一个参数)。不用说,这不是你想要的。
您应该使用ControlCommand执行类似SelectString的操作。你不应该首先显示下拉列表:
ControlCommand("Test Form", "", "[NAME:ctlMsgQueueCombo]", "SelectString", "This is my default value (TEST) - First")
我还没能测试它,但只要它找到了窗口,并且字符串是正确的,那么它就应该没问题。