从复选框中读取不起作用

Reading from check boxes doesn't work

我想遍历复选框以获取每个复选框的标题文本。我有这段代码,但它不起作用。谁能告诉我怎么了?

那是因为稍后在 For 循环中我使用 $i 来遍历其他东西吗?但它甚至没有 运行 Send() 命令。 AutoIt 会自动增加 $i 变量吗?

For $i = 1 to 64
    If GUICtrlRead("$Checkbox" & $i,0) = $GUI_CHECKED Then
        Local $checkboxtext = GUICtrlRead($Checkbox[$i], 1)
        Local $checkboxtextsplit = StringSplit( $checkboxtext, "/")
        $instanz = $checkboxtextsplit[1]
        $favorite = "F" & $checkboxtextsplit[2]
        $position = $checkboxtextsplit[3]

        ;Select actual Instance from Checkbox Name.
        If $instanz = "1" Then
            WinActivate($handle1)
        Else
            WinActivate($handle2)
        EndIf

        Send("{" & $favorite & "}")
        ;...
    EndIf
Next

我提供 GUICtrlRead() its parameters 的方式有误。而不是:

If GUICtrlRead("$Checkbox" & $i, 0) = $GUI_CHECKED Then
    Local $checkboxtext = GUICtrlRead($Checkbox[$i], 1)

应该是:

If GUICtrlRead($Checkbox & $i, 0) = $GUI_CHECKED Then
    Local $checkboxtext = GUICtrlRead($Checkbox & $i, 1)

要检索复选框 checked/un-checked 状态,请使用:

If GUICtrlRead($Checkbox & $i, 0) = $GUI_CHECKED Then ...

要读取复选框的文本,请使用:

$checkboxtext = GUICtrlRead($Checkbox & $i, 1)