从复选框中读取不起作用

时间:2017-09-28 13:56:20

标签: for-loop autoit

我想迭代复选框以获取每个标题文本。我有这个代码,但它不起作用。有人能告诉我什么错了吗?

这是因为我在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

1 个答案:

答案 0 :(得分:0)

我以错误的方式提供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)

要检索复选框已选中/未选中状态,请使用:

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

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

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