Brauche Hilfe bei GuiCtrlCreateTab

    • Offizieller Beitrag

    Servus.

    Ich bin fast am Verzweifeln, wie bekommae ich es hin, das bein erscheinen der Gui Tab1 (Anwendungen) gewählt ist.
    Stehe gerade ziemlich auf dem Schlauch, oder besser ich seh den Wald vor lauter Bäumen nicht mehr.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt('MustDeclareVars', 1)

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

    Einstellungen()

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

    Func Einstellungen()
    Local $CheckAnw[6]
    local $CheckProz[5]
    Local $nMsg,$hTmp,$aTemp
    Local $sInifile = @ScriptDir & "\" & "Taskman.ini", $sFilePath = @ScriptDir & "\AutoIt.jpg"
    Local $DataAnw = StringSplit(IniRead($sInifile, 'Column', 'Anwendungen', "off|on|on|on|on|on|on|off"), "|")
    Local $DataProz = StringSplit(IniRead($sInifile, 'Column', 'Prozesse', "off|on|on|on|on|on|off"), "|")
    Local $Einstellungen = GUICreate("Einstellungen", 625, 445, 192, 124)
    Local $EinstTab = GUICtrlCreateTab(8, 16, 569, 273)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    Local $EinstTab1 = GUICtrlCreateTabItem("Anwendungen")
    Local $Group1 = GUICtrlCreateGroup("Windows Management Instrumentation (WMI) für Anwendungen Tab verwenden", 16, 48, 425, 41)
    Local $WMIanAnw = GUICtrlCreateRadio("WMI aktivireren", 24, 64, 113, 17)
    If $DataAnw[1] = "on" Then GUICtrlSetState(-1, $GUI_CHECKED)
    Local $WMIausAnw = GUICtrlCreateRadio("WMI deaktivieren", 200, 64, 113, 17)
    If $DataAnw[1] = "off" Then GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $Group2 = GUICtrlCreateGroup("Column anzeigen", 16, 104, 425, 129)
    $CheckAnw[0] = GUICtrlCreateCheckbox("Pragrammicon", 24, 128, 97, 17)
    $CheckAnw[1] = GUICtrlCreateCheckbox("Fenstertitel", 24, 152, 97, 17)
    $CheckAnw[2] = GUICtrlCreateCheckbox("Programmname", 24, 176, 97, 17)
    $CheckAnw[3] = GUICtrlCreateCheckbox("Programmpfad", 24, 200, 97, 17)
    $CheckAnw[4] = GUICtrlCreateCheckbox("PID", 152, 128, 97, 17)
    $CheckAnw[5] = GUICtrlCreateCheckbox("Winhandle", 152, 152, 97, 17)
    For $i = 0 To 5
    If $DataAnw[$i + 2] = "on" Then
    GUICtrlSetState($CheckAnw[$i], $GUI_CHECKED)
    ElseIf $DataAnw[$i + 2] = "off" Then
    GUICtrlSetState($CheckAnw[$i], $GUI_UNCHECKED)
    EndIf
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $Group3 = GUICtrlCreateGroup("Details zur Anwendung anzeigen", 16, 240, 425, 41)
    Local $AnDetailAnw = GUICtrlCreateRadio("Detailanzeige aktivieren", 24, 256, 145, 17)
    If $DataAnw[8] = "on" Then GUICtrlSetState(-1, $GUI_CHECKED)
    Local $AusDetailAnw = GUICtrlCreateRadio("Detailanzeige deaktivieren", 192, 256, 153, 17)
    If $DataAnw[8] = "off" Then GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $UebernahmeAnw = GUICtrlCreateButton("Übernehmen", 464, 52, 99, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Local $Abbrechen1 = GUICtrlCreateButton("Abbrechen", 464, 89, 99, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Local $EinstTab2 = GUICtrlCreateTabItem("Prozesse")
    GUICtrlSetState(-1, $GUI_SHOW)
    Local $Group4 = GUICtrlCreateGroup("Windows Management Instrumentation (WMI) für Prozesse Tab verwenden", 16, 48, 425, 41)
    Local $WMIanProz = GUICtrlCreateRadio("WMI aktivireren", 24, 64, 113, 17)
    If $DataProz[1] = "on" Then GUICtrlSetState(-1, $GUI_CHECKED)
    Local $WMIausProz = GUICtrlCreateRadio("WMI deaktivieren", 200, 64, 113, 17)
    If $DataProz[1] = "off" Then GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $Group5 = GUICtrlCreateGroup("Column anzeigen", 17, 104, 425, 129)
    $CheckProz[0] = GUICtrlCreateCheckbox("Pragrammicon", 25, 128, 97, 17)
    $CheckProz[1] = GUICtrlCreateCheckbox("Prozessname", 25, 152, 97, 17)
    $CheckProz[2] = GUICtrlCreateCheckbox("Prozesspfad", 25, 176, 97, 17)
    $CheckProz[3] = GUICtrlCreateCheckbox("PID", 153, 128, 97, 17)
    $CheckProz[4] = GUICtrlCreateCheckbox("Parent Pid", 153, 152, 97, 17)
    For $i = 0 To 4
    If $DataProz[$i + 2] = "on" Then
    GUICtrlSetState($CheckProz[$i], $GUI_CHECKED)
    ElseIf $DataProz[$i + 2] = "off" Then
    GUICtrlSetState($CheckProz[$i], $GUI_UNCHECKED)
    EndIf
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $Group6 = GUICtrlCreateGroup("Details zum Prozess anzeigen", 18, 236, 425, 41)
    Local $AnDetailProz = GUICtrlCreateRadio("Detailanzeige aktivieren", 26, 252, 145, 17)
    If $DataProz[7] = "on" Then GUICtrlSetState(-1, $GUI_CHECKED)
    Local $AusDetailProz = GUICtrlCreateRadio("Detailanzeige deaktivieren", 194, 252, 153, 17)
    If $DataProz[7] = "off" Then GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $UebernahmeProz = GUICtrlCreateButton("Übernehmen", 464, 56, 99, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Local $Abbrechen2 = GUICtrlCreateButton("Abbrechen", 464, 96, 99, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

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

    Case $AnDetailAnw
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[8] = "on"
    Case $AusDetailAnw
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[8] = "off"
    Case $AnDetailProz
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[8] = "on"
    Case $AusDetailProz
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[8] = "off"
    Case $CheckAnw[0] To $CheckAnw[5]
    $hTmp = $nMsg - $CheckAnw[0]
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[$hTmp + 2] = "on"
    If BitAND(GUICtrlRead($nMsg), $GUI_UNCHECKED) Then $DataAnw[$hTmp + 2] = "off"
    Case $WMIanAnw
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[1] = "on"
    Case $WMIausAnw
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[1] = "off"
    Case $WMIanProz
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataProz[1] = "on"
    Case $WMIausProz
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataProz[1] = "off"
    Case $CheckProz[0] To $CheckProz[4]
    $hTmp = $nMsg - $CheckProz[0]
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataProz[$hTmp + 2] = "on"
    If BitAND(GUICtrlRead($nMsg), $GUI_UNCHECKED) Then $DataProz[$hTmp + 2] = "off"
    Case $UebernahmeAnw
    $aTemp = $DataAnw
    _ArrayDelete($aTemp,0)
    IniWrite($sInifile,'Column', 'Anwendungen',_ArrayToString($aTemp))
    ExitLoop
    Case $UebernahmeProz
    $aTemp = $DataProz
    _ArrayDelete($aTemp,0)
    IniWrite($sInifile,'Column', 'Prozesse',_ArrayToString($aTemp))
    ExitLoop
    Case $Abbrechen1,$Abbrechen2,$GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    GuiDelete($Einstellungen)

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

    EndFunc

    [/autoit]

    Edit habe es mit

    [autoit]

    GUISwitch ( $Einstellungen, $EinstTab1 )

    [/autoit]

    versucht, kein Erfolg.

  • Hey,

    soweit ich mich erinnern kann, musst du unter das gewünschte Item ein:

    [autoit]

    GUICtrlSetState(-1,$GUI_SHOW)

    [/autoit]


    setzen!

    Diese Angabe ist ohne Gewähr!

    Hoffe es hilft ;)

    Jaja, Moo does the Cow!

    • Offizieller Beitrag

    @ Lenny, das war es ;)

    BugFix Das hab ich zuerst ausprobiert, funzt nicht. Wählt zwar den richtigen Tab an, aber zeigt den Inhalt des zuletzt erstellten Tabs ;( .
    Frag mich aber nicht, warum das so ist.

    Zum selbertesten:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiTab.au3>
    Opt('MustDeclareVars', 1)

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

    Einstellungen()

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

    Func Einstellungen()
    Local $CheckAnw[6]
    local $CheckProz[5]
    Local $nMsg,$hTmp,$aTemp
    Local $sInifile = @ScriptDir & "\" & "Taskman.ini", $sFilePath = @ScriptDir & "\AutoIt.jpg"
    Local $DataAnw = StringSplit(IniRead($sInifile, 'Column', 'Anwendungen', "off|on|on|on|on|on|on|off"), "|")
    Local $DataProz = StringSplit(IniRead($sInifile, 'Column', 'Prozesse', "off|on|on|on|on|on|off"), "|")
    Local $Einstellungen = GUICreate("Einstellungen", 625, 445, 192, 124)
    Local $EinstTab = GUICtrlCreateTab(8, 16, 569, 273)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    Local $EinstTab1 = GUICtrlCreateTabItem("Anwendungen")
    Local $Group1 = GUICtrlCreateGroup("Windows Management Instrumentation (WMI) für Anwendungen Tab verwenden", 16, 48, 425, 41)
    Local $WMIanAnw = GUICtrlCreateRadio("WMI aktivireren", 24, 64, 113, 17)
    If $DataAnw[1] = "on" Then GUICtrlSetState(-1, $GUI_CHECKED)
    Local $WMIausAnw = GUICtrlCreateRadio("WMI deaktivieren", 200, 64, 113, 17)
    If $DataAnw[1] = "off" Then GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $Group2 = GUICtrlCreateGroup("Column anzeigen", 16, 104, 425, 129)
    $CheckAnw[0] = GUICtrlCreateCheckbox("Pragrammicon", 24, 128, 97, 17)
    $CheckAnw[1] = GUICtrlCreateCheckbox("Fenstertitel", 24, 152, 97, 17)
    $CheckAnw[2] = GUICtrlCreateCheckbox("Programmname", 24, 176, 97, 17)
    $CheckAnw[3] = GUICtrlCreateCheckbox("Programmpfad", 24, 200, 97, 17)
    $CheckAnw[4] = GUICtrlCreateCheckbox("PID", 152, 128, 97, 17)
    $CheckAnw[5] = GUICtrlCreateCheckbox("Winhandle", 152, 152, 97, 17)
    For $i = 0 To 5
    If $DataAnw[$i + 2] = "on" Then
    GUICtrlSetState($CheckAnw[$i], $GUI_CHECKED)
    ElseIf $DataAnw[$i + 2] = "off" Then
    GUICtrlSetState($CheckAnw[$i], $GUI_UNCHECKED)
    EndIf
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $Group3 = GUICtrlCreateGroup("Details zur Anwendung anzeigen", 16, 240, 425, 41)
    Local $AnDetailAnw = GUICtrlCreateRadio("Detailanzeige aktivieren", 24, 256, 145, 17)
    If $DataAnw[8] = "on" Then GUICtrlSetState(-1, $GUI_CHECKED)
    Local $AusDetailAnw = GUICtrlCreateRadio("Detailanzeige deaktivieren", 192, 256, 153, 17)
    If $DataAnw[8] = "off" Then GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $UebernahmeAnw = GUICtrlCreateButton("Übernehmen", 464, 52, 99, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Local $Abbrechen1 = GUICtrlCreateButton("Abbrechen", 464, 89, 99, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Local $EinstTab2 = GUICtrlCreateTabItem("Prozesse")
    GUICtrlSetState(-1, $GUI_SHOW)
    Local $Group4 = GUICtrlCreateGroup("Windows Management Instrumentation (WMI) für Prozesse Tab verwenden", 16, 48, 425, 41)
    Local $WMIanProz = GUICtrlCreateRadio("WMI aktivireren", 24, 64, 113, 17)
    If $DataProz[1] = "on" Then GUICtrlSetState(-1, $GUI_CHECKED)
    Local $WMIausProz = GUICtrlCreateRadio("WMI deaktivieren", 200, 64, 113, 17)
    If $DataProz[1] = "off" Then GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $Group5 = GUICtrlCreateGroup("Column anzeigen", 17, 104, 425, 129)
    $CheckProz[0] = GUICtrlCreateCheckbox("Pragrammicon", 25, 128, 97, 17)
    $CheckProz[1] = GUICtrlCreateCheckbox("Prozessname", 25, 152, 97, 17)
    $CheckProz[2] = GUICtrlCreateCheckbox("Prozesspfad", 25, 176, 97, 17)
    $CheckProz[3] = GUICtrlCreateCheckbox("PID", 153, 128, 97, 17)
    $CheckProz[4] = GUICtrlCreateCheckbox("Parent Pid", 153, 152, 97, 17)
    For $i = 0 To 4
    If $DataProz[$i + 2] = "on" Then
    GUICtrlSetState($CheckProz[$i], $GUI_CHECKED)
    ElseIf $DataProz[$i + 2] = "off" Then
    GUICtrlSetState($CheckProz[$i], $GUI_UNCHECKED)
    EndIf
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $Group6 = GUICtrlCreateGroup("Details zum Prozess anzeigen", 18, 236, 425, 41)
    Local $AnDetailProz = GUICtrlCreateRadio("Detailanzeige aktivieren", 26, 252, 145, 17)
    If $DataProz[7] = "on" Then GUICtrlSetState(-1, $GUI_CHECKED)
    Local $AusDetailProz = GUICtrlCreateRadio("Detailanzeige deaktivieren", 194, 252, 153, 17)
    If $DataProz[7] = "off" Then GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Local $UebernahmeProz = GUICtrlCreateButton("Übernehmen", 464, 56, 99, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Local $Abbrechen2 = GUICtrlCreateButton("Abbrechen", 464, 96, 99, 25, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    Local $hTab = GUICtrlGetHandle($EinstTab)
    _GUICtrlTab_SetCurSel( $hTab, 0)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

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

    Case $AnDetailAnw
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[8] = "on"
    Case $AusDetailAnw
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[8] = "off"
    Case $AnDetailProz
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[8] = "on"
    Case $AusDetailProz
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[8] = "off"
    Case $CheckAnw[0] To $CheckAnw[5]
    $hTmp = $nMsg - $CheckAnw[0]
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[$hTmp + 2] = "on"
    If BitAND(GUICtrlRead($nMsg), $GUI_UNCHECKED) Then $DataAnw[$hTmp + 2] = "off"
    Case $WMIanAnw
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[1] = "on"
    Case $WMIausAnw
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataAnw[1] = "off"
    Case $WMIanProz
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataProz[1] = "on"
    Case $WMIausProz
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataProz[1] = "off"
    Case $CheckProz[0] To $CheckProz[4]
    $hTmp = $nMsg - $CheckProz[0]
    If BitAND(GUICtrlRead($nMsg), $GUI_CHECKED) Then $DataProz[$hTmp + 2] = "on"
    If BitAND(GUICtrlRead($nMsg), $GUI_UNCHECKED) Then $DataProz[$hTmp + 2] = "off"
    Case $UebernahmeAnw
    $aTemp = $DataAnw
    _ArrayDelete($aTemp,0)
    IniWrite($sInifile,'Column', 'Anwendungen',_ArrayToString($aTemp))
    ExitLoop
    Case $UebernahmeProz
    $aTemp = $DataProz
    _ArrayDelete($aTemp,0)
    IniWrite($sInifile,'Column', 'Prozesse',_ArrayToString($aTemp))
    ExitLoop
    Case $Abbrechen1,$Abbrechen2,$GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    GuiDelete($Einstellungen)

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

    EndFunc

    [/autoit]

    Danke euch beiden. :)

    • Offizieller Beitrag

    Ja, das klappert auch. :D