2011-06-16 54 views
1

使用下面的代碼無法使用的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") 

它選擇組合框的窗戶形式的下拉列表中選擇一個值,但它不選擇所需的「這是我的默認值(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) 

回答

2

現在您正在使用ControlSend,但參數不正確。正如預計的1或0的最後一個參數)下面將發送字符串「選擇」,和最後一個參數將被評估爲0

ControlSend("Test Form", "", "[NAME:ctlMsgQueueCombo]", "select", "This is my default value (TEST) - First") 

。不用說這不是你想要的。

你應該做一些像SelectString與ControlCommand。你不應該首先顯示的下拉:

ControlCommand("Test Form", "", "[NAME:ctlMsgQueueCombo]", "SelectString", "This is my default value (TEST) - First") 

我一直沒能測試,但只要它找到窗口和字符串是正確的,那麼它應該是罰款。

+0

不工作 – sam 2011-06-20 08:26:45

+0

@sam,這絕對是一個標準的組合,並且該字符串肯定存在?這可能是組合在下拉事件中填充的,但我懷疑它。 – Matt 2011-06-20 13:11:56

+0

它爲我非標gui combobox工作..謝謝! – Nick 2012-10-26 22:35:34