質問

使ってます 自動車 自動インストールアプリケーションを作成します。リストボックスコントロールを含むダイアログがあり、リストボックスにはユーザーの選択肢がいくつかあります(詳細な選択肢はユーザーのマシンに依存します。一部のユーザーの場合、選択肢は1つだけです。一部のユーザーは3つの選択肢などがあります。 、そのため、リストボックスにテキストを取得して決定を下したいと思います。次のコードを試しましたが、機能しませんでした。

; 2223 is the ID of listbox

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

実行後 $txt 無効である。

では、リストボックスにテキストを取得するにはどうすればよいですか?

監視されているリストボックスの属性は次のとおりです 自動車V3ウィンドウ情報:

Class: WindowsForms10.Listbox.app.0.33c0d9d
役に立ちましたか?

解決 4

私がやりたいのは、リスト内の「デフォルトのWebサイト」という名前のアイテムの1つを選択することですが、リストコンテンツを入手できないようですので、最後に別の方法を試しました。

最初はリストボックスに焦点を合わせた後、「def」を送信して「デフォルトのWebサイト」を選択します。

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

他のヒント

特にPCがロックされている場合、「送信」コマンドが時々信頼できないことがわかりました。

「ControlSend」は、私が望む場所でキーストロークを取得するために常に働いてきました。

アイテムがコンボボックスに含まれているかどうかを確認するためにテストを書きました。 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

どうですか:

ControlCommand("My GUI", "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", "item2")
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top