2010-05-04 25 views
1

我正在使用AutoIt來創建自動安裝應用程序。有一個包含ListBox控件的對話框,在列表框中有一些用戶選擇(具體選擇取決於用戶的機器,對於某些用戶,可能只有一個選擇,對於某些用戶可能有三個選擇等) ,所以我想讓列表框中的文本做出決定。我已經嘗試了下面的代碼,但它不起作用。如何使用AutoIt在ListBox中獲取文本

; 2223 is the ID of listbox 

$txt = ControlGetText("Select Web Site", "", "[ID:2223]") 
Msgbox(0, "", $txt) 

執行後$txt爲空。

那麼我應該怎麼做才能在Listbox中獲得文本?

下面是了AutoIt v3的窗口信息監視列表框的屬性:

Class: WindowsForms10.Listbox.app.0.33c0d9d 

回答

0

我想要做的就是選擇名爲「默認Web站點」列表中的項目之一,但似乎列表內容不能得到的,所以最後我嘗試另一種方式:

起初我讓列表框集中,然後我通過發送「DEF」選擇項「默認Web站點」:

ControlFocus($Title, "", "[NAME:lbWebSites]") 
; Select the option "Default Web Site", so press "def" to set the desired item. 
Send("Def") 
1

我發現「發送」命令有時不可靠,特別是在PC被鎖定的情況下。

「ControlSend」一直致力於在我想要的位置獲取按鍵。

+1

請在您的帖子中[不要使用簽名或標語](http://stackoverflow.com/faq#signatures)。 – meagar 2010-12-08 05:12:08

0

什麼:

ControlCommand("My GUI", "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", "item2") 
1

我寫了一個測試,以檢查是否一個項目是在組合框中。使用GuiComboBox.au3可能會有類似的列表框功能。

Func DoesItemExistInComboBox($windowtitle, $windowtext, $comboboxcontrol, $itemtocheck) 
    $returnvalue = 0 
    $ComboBoxHandle = ControlGetHandle($windowtitle, $windowtext, $comboboxcontrol) 
    $ComboBoxArray = _GUICtrlComboBox_GetListArray($ComboBoxHandle) 
    For $i = 0 TO UBound($ComboBoxArray)-1 
     If $ComboBoxArray[$i] = $itemtocheck Then 
      $returnvalue = 1 
     EndIf 
    Next 
    return $returnvalue 
EndFunc