pruefen ob checkbox aktiviert ist

  • guten abend,

    ich habe ein Einstellungsfenster, und darin einen Text + checkbox.

    class = Button
    Instance = 1
    Advanced Mode = [CLASS:Button; INSTANCE:1]
    ID = 162

    Text = Ich erkenne diese Bedingungen an. Meine Personalangaben sind korrekt.(Da ist ne checkbox)
    die checkbox ändert Zustand egal ob ich auf den text klicke oder die checkbox direckt.

    Code
    ; Wechsel zum Tab persönliche daten
    		_GUICtrlTab_SetCurFocus($shTab, 2) ; Daten Spielerverzeichniss
    		$sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    		ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")
    		MsgBox(0 + 64, "Hinweis", "verlasse persoenliche daten")

    den Befehl ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")sollte nur ausführen wenn checkbox ohne haken ist


    hat da jemand ne Idee ?

    danke gruss roland

    Einmal editiert, zuletzt von super47 (29. Oktober 2010 um 17:54)

  • Hallo super47,

    mit folgendem Code kannst Du eine Checkbox grundsätzlich aktivieren:

    [autoit]

    ControlSend(Name des Fensters, "", "[CLASS:Button; INSTANCE:1]", "+")

    [/autoit]


    dementsprechend mit

    [autoit]

    ControlSend(Name des Fensters, "", "[CLASS:Button; INSTANCE:1]", "-")

    [/autoit]

    grundsätzlich deaktivieren.

    Der Status der Checkbox ist dabei egal.
    D.h. bei "+" bleibt eine aktivierte Checkbox das auch, ansonsten wird diese aktiviert.
    bei "-" wird eine Checkbox deaktiviert.

    Das Control musst Du vielleicht noch anpassen, da das wahrscheinlich nicht die Checkbox direkt ist.
    ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

  • guten abend,

    Beitrag von: Schnuffel,

    Danke sehr gute Antwort.....aber : musste erst den fokus auf die zeile (ID = 162) einstellen.siehe code :-((
    ControlSend benötigt noch Flag = 1 .....hmmm sonst nimmt er die zeichen +- nicht

    [autoit]

    ControlFocus($sTitle, "", "162")
    MsgBox(0 + 64, "focus", "ok Fokus hat gewechselt")
    ControlSend($sTitle, "", "[CLASS:Button; INSTANCE:1]","+",1)
    MsgBox(0 + 64, "Hinweis Name schon vorhanden", "Keine Veränderung vorgenommen !!")

    [/autoit]


    sehr lehrreich
    Die frage war aber: Abfrage ob ein oder aus ist........

    Die Antwort von BugFix: (Problem genau getroffen und gelöst)

    [autoit]

    $status = ControlCommand($sTitle, "", "[CLASS:Button; INSTANCE:1]", "IsChecked", "") ; 1 für Checked
    If $status =0 Then ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")

    [/autoit]

    danke beiden für die Antworten.

    gruss roland