2D Array in GUICtrlCreateCombo oder GUICtrlCreateList

  • Hallo,

    Ich habe folgende GUI:

    autoit.de/wcf/attachment/13589/


    es soll eine Spalte aus dem 2D Array dort eingegeben werden Sämtliche ansätze mit Schleifen sind bei mir gescheitert.

    jemand einen Rat ?

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <AD.au3>
    #include <Array.au3>
    #include <GuiListView.au3>

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

    Global $SDNSDomain, $SHostServer, $SConfiguration, $SPassword, $SUserId, $aTEMP, $status, $statusleiste, $templeer, $sType, $homenrtemp

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

    ; Username+Passwort fuer Domainadmin
    $SUserId = ""
    $SPassword = ""

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

    ; Open Connection to the Active Directory
    _AD_Open()
    $SDNSDomain = $sAD_DNSDomain
    $SHostServer = $sAD_HostServer
    $SConfiguration = $sAD_Configuration
    _AD_Close()

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

    ; Open Connection to the Active Directory
    If _AD_Open($SUserId, $SPassword, $SDNSDomain, $SHostServer, $SConfiguration) Then
    ElseIf @error <= 8 Then
    MsgBox(16, "Adressbuch AD-Tool", "The logon was not succcessful!" & @CRLF & @CRLF & "@error: " & @error & ", @extended: " & @extended)
    Else
    MsgBox(16, "Adressbuch AD-Tool", "The logon was not succcessful!" & @CRLF & @CRLF & "@error: " & @error & ", @extended: " & @extended & _
    @CRLF & @CRLF & "Extended error information will be displayed")
    Global $aError = _AD_GetLastADSIError()
    _ArrayDisplay($aError)
    EndIf

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

    Global $sOU = "OU=Mitarbeiter XXX,DC=xxx,DC=de"

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

    Global $aObjects[1][1]

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

    $aObjects = _AD_GetObjectsInOU($sOU, "(name=*)", 2, "displayname,sAMAccountName")

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 192, 124)
    $wnamen = GUICtrlCreateListView($aObjects, 104, 24, 209, 383)
    _GUICtrlListView_AddArray($wnamen, $aObjects)

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

    $OK = GUICtrlCreateButton("OK", 368, 272, 121, 97, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $OK

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

    _ArrayDisplay($aObjects, "Active Directory Functions - Example 1 - Objects in OU '" & $sOU & "'")

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

    EndSwitch
    WEnd

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


    In der Zeile 47 ist das Problem ?(


    Danke

    Einmal editiert, zuletzt von scenix (22. Juni 2011 um 16:24)

  • So müsste es gehen (habe nicht die AD.au3)

    [autoit]

    For $I = 0 to Ubound ($aObjekts) -1
    GUICtrlCreateListViewItem ($aObjekts[$i][0], $wnamen)
    Next

    [/autoit]

    Wenn du die LVItems noch löschen möchtest würde ich die IDs in ein Array schreiben.

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • Hmmm ich habe dein Antwort gelesen weiss aber nicht wie du es meinst so eine For schleife hab ich auch schon mal erstellt


    Spoiler anzeigen
    [autoit]


    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 192, 124)
    $wnamen = GUICtrlCreateListView("", 104, 24, 209, 383)

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

    For $I = 0 to Ubound ($aObjects) -1
    GUICtrlCreateListViewItem ($aObjects[$i][0], $wnamen)
    Next

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

    An welcher Stelle muss ich das hinzufügen ?


    Da du ja sagtest du hast AD.au3 nicht füge ich die hinzu :D


    Ich habe hier mal den Array inhalt gepostet :
    autoit.de/wcf/attachment/13592/

  • Dashier sollte klappen (nachdem in der SB genau erklärt wurde was du machen willst :D das nächste mal bitte eine ausführlichere Beschreibung des Problems angeben :))

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <AD.au3>
    #include <Array.au3>
    #include <GuiListView.au3>

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

    Global $SDNSDomain, $SHostServer, $SConfiguration, $SPassword, $SUserId, $aTEMP, $status, $statusleiste, $templeer, $sType, $homenrtemp

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

    ; Username+Passwort fuer Domainadmin
    $SUserId = ""
    $SPassword = ""

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

    ; Open Connection to the Active Directory
    _AD_Open()
    $SDNSDomain = $sAD_DNSDomain
    $SHostServer = $sAD_HostServer
    $SConfiguration = $sAD_Configuration
    _AD_Close()

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

    ; Open Connection to the Active Directory
    If _AD_Open($SUserId, $SPassword, $SDNSDomain, $SHostServer, $SConfiguration) Then
    ElseIf @error <= 8 Then
    MsgBox(16, "Adressbuch AD-Tool", "The logon was not succcessful!" & @CRLF & @CRLF & "@error: " & @error & ", @extended: " & @extended)
    Else
    MsgBox(16, "Adressbuch AD-Tool", "The logon was not succcessful!" & @CRLF & @CRLF & "@error: " & @error & ", @extended: " & @extended & _
    @CRLF & @CRLF & "Extended error information will be displayed")
    Global $aError = _AD_GetLastADSIError()
    _ArrayDisplay($aError)
    EndIf

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

    Global $sOU = "OU=Mitarbeiter XXX,DC=xxx,DC=de"

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

    Global $aObjects[1][1]

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

    $aObjects = _AD_GetObjectsInOU($sOU, "(name=*)", 2, "displayname,sAMAccountName")

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 192, 124)
    $wnamen = GUICtrlCreateListView("Name|Windows Anmeldename", 104, 24, 209, 383)
    For $I = 0 to Ubound ($aObjekts) -1
    GUICtrlCreateListViewItem ($aObjekts[$i][0]& "|"&$aObjects[$i][1] , $wnamen)
    Next

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

    $OK = GUICtrlCreateButton("OK", 368, 272, 121, 97, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $OK

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

    _ArrayDisplay($aObjects, "Active Directory Functions - Example 1 - Objects in OU '" & $sOU & "'")

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

    EndSwitch
    WEnd

    [/autoit]

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • An welcher Stelle muss ich das hinzufügen ?

    Die Schleife muss anstatt dieser Zeile

    [autoit]

    _GUICtrlListView_AddArray($wnamen, $aObjects)

    [/autoit]

    benutzt werden.

    Da du ja sagtest du hast AD.au3 nicht füge ich die hinzu :D

    Verbünftiger wäre es du stellst das Array als Texfile ein, da nicht alle ActiveDirectory zur Verfügung haben. Einfach mit _ArrayDisplay anzeigen lassen, alle Einträge markieren und kopieren danach in ein Textfile einfügen.

    mfg autoBert