如何使用AutoIt在ListBox中获取文本

时间:2010-05-04 05:23:54

标签: autoit

我正在使用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

4 个答案:

答案 0 :(得分:1)

我发现'发送'命令有时是不可靠的,特别是如果PC被锁定了。

'ControlSend'一直致力于在我想要的地方进行击键。

答案 1 :(得分: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

答案 2 :(得分:0)

我想要做的是在列表中选择一个名为“默认网站”的项目,但似乎无法获得列表内容,所以最后我尝试了另一种方式:

首先我将列表框集中,然后通过发送“Def”选择“默认网站”项:

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

答案 3 :(得分:0)

怎么样:

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