1

使用以下代码

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")

它选择了组合框,但没有从列表中选择所需的“这是我的默认值(TEST)-首先”。基本上,它选择任何以 . 开头的值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)
4

1 回答 1

2

现在您使用的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")

我无法对此进行测试,但只要它找到窗口并且字符串正确,那么它应该没问题。

于 2011-06-17T11:54:09.930 回答