我正在使用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 :(得分: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")