Ich hab grade mal ein wenig rumprobiert und sah folgendes Problem:
in meiner Gui hab ich mir ein Tab mit 3 Reitern erstellt. Im ersten Tab ist eine Listview drin.
Spoiler anzeigen
...
Global $TabSheet1 = GUICtrlCreateTabItem("Server")
Global $LVUsers = GUICtrlCreateListView("Login|Vollständiger Name|Beschreibung|Telefon|P-Laufwerk", 20, 43, $win_w - 40 , $win_h - 140, -1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT))
...
Diese Listview wird durch Klick auf einen Button mit Werten aus dem AD gefüllt:
Spoiler anzeigen
... $sADOU = "ou=" & GUICtrlRead($ServerCombo) & ",ou=yyy,dc=xxx,dc=zzz,dc=de"
if _getCheckboxState($SperrBox) <> 1 Then
$aObjects = _AD_GetObjectsInOU($sADOU, "(&(objectcategory=person)(objectclass=user)(cn=*))", 2, "sAMAccountName,displayname,description,telephoneNumber,homeDirectory", "sAMAccountName")
Else
$aObjects = _AD_GetObjectsInOU($sADOU, "(&(objectcategory=computer)(objectclass=computer)(name=*))", 2, "cn, description")
EndIf
If @error > 0 Then
MsgBox(64, "AD-Functions", "No OUs could be found")
Else
_GUICtrlListView_DeleteAllItems($LVUsers)
For $i=1 To UBound($aObjects)-1
[/autoit] [autoit][/autoit] [autoit]if _getCheckboxState($SperrBox) = 1 Then
GUICtrlCreateListViewItem($aObjects[$i][0] & "|"& $aObjects[$i][1], $LVUsers)
Else
if StringLen($aObjects[$i][0]) <= 6 Then
GUICtrlCreateListViewItem($aObjects[$i][0] & "|"& $aObjects[$i][1]& "|"& $aObjects[$i][2]& "|"& $aObjects[$i][3]& "|"& $aObjects[$i][4], $LVUsers)
EndIf
EndIf
Next
[/autoit] [autoit][/autoit] [autoit]EndIf
...
Das funktioniert so weit auch, AAAAber:
Das Füllen der ListView im TAB dauert bei ca. 270 Einträgen etwa 10-12 Sekunden.
Wenn ich die Listview ausserhalb eines Tabs mit gleichem Code füllen lasse, sind das nur max. 2 Sekunden.
Wo ist da ein Problem??