Button-Status abfragen...

  • Guten Abend,
    ich probiere gerade, den Status eines Button abzufragen. Allerdings geht es nicht.
    Mein Code:

    [autoit]


    $handle = ControlGetHandle("Updater", "", "[TEXT:Daten hochladen]")
    $status = _GUICtrlButton_GetState($handle)
    MsgBox(0, "", $status)

    [/autoit]

    Ausgegeben wird 0.
    Ich muss wissen, ob der Button ausgegraut(deaktiviert) ist. Denn nur wenn er aktiviert ist, passiert etwas nach einem Klick darauf.
    Aber wie finde ich nun heraus, ob der Button deaktiviert ist oder nicht.

    PS: Der Button gehört zu einem Fremdprogramm(sonst wär's ja einfach...)

  • Ich glaub man brauch das hier dazu:

    Spoiler anzeigen
    [autoit]

    Func _ExplainState($iState, $fPushButton = False)
    Local $sText = ""
    If Not $fPushButton And Not $iState Then Return _
    @CRLF & "Indicates the button is cleared. Same as a return value of zero." & @CRLF
    If BitAND($iState, $BST_CHECKED) = $BST_CHECKED Then _
    $sText &= @CRLF & "Indicates the button is checked." & @CRLF
    If BitAND($iState, $BST_FOCUS) = $BST_FOCUS Then _
    $sText &= @CRLF & "Specifies the focus state. A nonzero value indicates that the button has the keyboard focus." & @CRLF
    If BitAND($iState, $BST_INDETERMINATE) = $BST_INDETERMINATE Then _
    $sText &= @CRLF & "Indicates the button is grayed because the state of the button is indeterminate." & @CRLF
    If $fPushButton Then
    If BitAND($iState, $BST_PUSHED) = $BST_PUSHED Then
    $sText &= @CRLF & "Specifies the highlight state." & @CRLF
    Else
    $sText &= @CRLF & "Specifies not highlighted state." & @CRLF
    EndIf
    EndIf
    Return $sText
    EndFunc ;==>_ExplainState

    [/autoit]
  • bzw mit AutoitWindowInfodie genauen Infos zu dem Control holen und dann kann man es auch gezielt befragen.

    [autoit]

    GUICtrlSetState($jawerdenn,$GUI_CHECKED)
    If GUICtrlRead($jawerdenn) = 1 Then......

    [/autoit][autoit][/autoit][autoit]

    $GUI_ENABLE Control will be enabled.
    $GUI_DISABLE Control will be greyed out.

    [/autoit]

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Dietmar:
    Leider ändern sich die Infos bei jedem Start, hatte ich vergessen zu erwähnen.
    Wenn's so einfach wäre, würde ich garantiert keinen umständlichen Weg suchen. ;)

    Ich probier's mal mit ControlCommand.