1

我正在使用AutoIt创建一个自动安装应用程序。有一个对话框,其中包含一个 ListBox 控件,在列表框中有一些供用户选择(具体选择取决于用户的机器。对于某些用户可能只有一个选择,对于某些用户可能有三个选择,等等) ,所以我想获取列表框中的文本来做出决定。我已经尝试了以下代码,但它不起作用。

; 2223 is the ID of listbox

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

执行后$txt为空。

那么我应该怎么做才能获取 Listbox 中的文本呢?

这是AutoIt v3 Window Info监控的列表框的属性:

Class: WindowsForms10.Listbox.app.0.33c0d9d
4

4 回答 4

1

我发现“发送”命令有时不可靠,尤其是在 PC 被锁定的情况下。

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

于 2010-12-08T03:18:11.053 回答
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
于 2013-06-20T19:58:26.657 回答
0

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

首先我使列表框成为焦点,然后通过发送“Def”选择“默认网站”项:

ControlFocus($Title, "", "[NAME:lbWebSites]")
; Select the option "Default Web Site", so press "def" to set the desired item.
Send("Def")
于 2010-05-20T03:03:20.207 回答
0

关于什么:

ControlCommand("My GUI", "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", "item2")
于 2011-10-24T06:51:09.850 回答