Registerkarten mit ControlTreeView(), ControlCommand(), oder anderen Methoden ansteuern.

  • Hallo All,


    ich will die einzelnen Registerkarten eines Controls des DFÜ-Netzwerks unter XP SP2 gezielt ansteuern. Darauf will ich dann Checkboxen checken, oder unchecken. Leider habe ich weder mit ControlTreeView, noch mit ControlCommand erreichen können, daß ich zuverlässig immer die passende Registerkarte anspringen kann. Danach soll das Control mit "OK" verlassen werden. Hat jemand eine Idee, wie die beste Methode aussieht, um Standard-Windows-Registerkarten anzusteuern?

    [autoit]

    ;Dim $sTab01
    Dim $sTab02
    $sItemText2 = ControlTreeView("","","[CLASS:SysTabControl32;INSTANCE:1]","CurrentTab","")
    ConsoleWrite($sItemText2 & @CRLF) ; => gibt leider nichts zurück, warum?

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

    ;Simple Variante, bei der "blind" nach rechts, oder links "getabt" wird. Unbefriedigend und funktioniert auch nicht richtig.

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

    ControlCommand("","","[CLASS:#32770;INSTANCE:1]","TabRight","")
    ControlCommand("","","[CLASS:#32770;INSTANCE:1]","TabRight","")
    ControlCommand("","","[CLASS:SysTabControl32;INSTANCE:1]","TabRight","")
    $sTab01 = ControlTreeView("","","[CLASS:SysTabControl32;INSTANCE:1]","GetText","#1")
    ControlTreeView("","","[CLASS:SysTabControl32;INSTANCE:1]","GetText","#0")
    ControlTreeView("","","[CLASS:SysTabControl32;INSTANCE:1]","Select","Optionen");Registerkarte Optionen <= Weshalb kann ich nicht mit dem Namen der Registerkarte arbeiten?
    ControlFocus("","","{CLASS:SysTabControl32;INSTANCE:1]") ;Registerkarte ;Optionen
    ControlCommand("Wähloptionen","[ID:1289]","Check", "")
    ControlFocus("Wähloptionen","","")
    ControlFocus("Wähloptionen","Button2","")
    ControlClick("Wähloptionen","Button2","")
    ControlCommand("","","Button2","Check","")
    ControlCommand("","","[CLASS:Button;INSTANCE:3]","UnCheck","") ;Na&me, Kennwort, Zertifikat usw. abfragen ; ID:1554
    ControlCommand("","","[CLASS:Button;INSTANCE:4]","UnCheck","") ;&Windows-Anmeldedomäne einbeziehen ; ID:1555
    ControlCommand("","","Button6","UnCheck")
    ControlClick("OK","","Button7")

    [/autoit]
  • Nun, das ist ja ein Tab, kein TreeView :) Also mit Tab-Funktionen arbeiten.
    Wenn der Index immer gleich ist / bzw. der Titel bekannt ist, kannst du es so machen:

    [autoit]

    #include <GUITab.au3>
    $hwnd = ControlGetHandle("Eigenschaften von Anzeige","","SysTabControl321")
    $tab = _GUICtrlTab_FindTab($hwnd,"Darstellung")
    _GUICtrlTab_SetCurSel($hwnd,$tab)

    [/autoit]
  • Hallo progandy,

    klasse, das scheint es zu sein. Ich hatte GuiGetControl und hwnd schon im Blick. Als aber die Hilfe schrieb: "..This method of accessing controls is generally only designed for users who are familiar with working with handles..." habe ich den Gedanken an das einlesen von Handles gleich wieder verworfen. Aber beim ersten Ansehen Deiner Anwort schien mir das das Richtige. Ich probier es mal nachher aus und schreibe hier nochmal das Ergebnis rein. Den Thread setze ich natürlich dann auch auf "gelöst".


    Danke & Gruß

    mugh