无法使用AutoIt从窗口窗体的下拉列表中选择值



使用以下代码

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

我还没能测试它,但只要它找到了窗口,并且字符串是正确的,那么它就应该没问题。

相关内容

  • 没有找到相关文章

最新更新