Hi,
da ich mich noch nie mit Treeview beschäftigt habe, weiß ich momentan nicht, wie ich am besten die Daten in einem Treeview darstellen kann!
Spoiler anzeigen
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <ListViewConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
$data = "SIC2|E:\AU3\SIC2|0|True||OK|Everyone|Full Access" & @LF & _
"AU3$|E:\AU3|0|10|Coding Share|OK|Everyone|Full Access" & @LF & _
"Output|E:\AU3\SIC2\Output|0|True||OK|Everyone|Full Access" & @LF & _
"SDOC|E:\SDOC|0|True|Test Share|OK|Administrators|Full Access" & @LF & _
"SDOC|E:\SDOC|0|True|Test Share|OK|Everyone|Change Access" & @LF & _
"HPBin|E:\Hewlett-Packard\ESS Sizers\Profile Manager\Bin|0|True||OK|Everyone|Read Access" & @LF & _
"wmpub|C:\wmpub|0|True||OK|Administrators|Full Access" & @LF & _
"wmpub|C:\wmpub|0|True||OK|Everyone|Read Access" & @LF & _
"wmpub|C:\wmpub|0|True||OK|Users|Change Access" & @LF & _
"wmiislog|C:\wmpub\wmiislog|0|True||OK|Everyone|Full Access" & @LF & _
"AutoIt3$|C:\Program Files\AutoIt3|0|True||OK|Guest|Full Access Denied" & @LF & _
"AutoIt3$|C:\Program Files\AutoIt3|0|True||OK|Administrators|Full Access" & @LF & _
"AutoIt3$|C:\Program Files\AutoIt3|0|True||OK|Everyone|Read Access" & @LF & _
"AutoIt3$|C:\Program Files\AutoIt3|0|True||OK|Power Users|Change Access"
$aData = Create2DArray($data)
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("Test", 800, 600)
$hTreeview = GUICtrlCreateTreeView(8, 144, 257, 362, BitOR($GUI_SS_DEFAULT_TREEVIEW,$TVS_EDITLABELS,$TVS_CHECKBOXES,$TVS_SINGLEEXPAND,$WS_BORDER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$hListview = GUICtrlCreateListView("Share|Path|Type|Max. Allowed|Description|Status|Account|Permission", 272, 144, 522, 362, BitOR($GUI_SS_DEFAULT_LISTVIEW,$LVS_AUTOARRANGE), BitOR($WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUISetState(@SW_SHOW)
$hImage = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_AddIcon($hImage, "shell32.dll", 85)
_GUICtrlTreeView_SetNormalImageList($hTreeview, $hImage)
_GUICtrlTreeView_BeginUpdate($hTreeview)
$root = _GUICtrlTreeView_Add($hTreeview, 1, "Shares on TEST_System", 0, 0)
_GUICtrlTreeView_AddChild($hTreeview, $root, "C:\Program Files\AutoIt3", 0, 0)
$hTVItem = _GUICtrlTreeView_AddChild($hTreeview, $root, "C:\wmpub", 0, 0)
$hTVItem = _GUICtrlTreeView_AddChild($hTreeview, $hTVItem, "wmiislog", 0, 0)
$hTVItem = _GUICtrlTreeView_AddChild($hTreeview, $root, "E:\AU3", 0, 0)
$hTVItem2 = _GUICtrlTreeView_AddChild($hTreeview, $hTVItem, "SIC2", 0, 0)
$hTVItem2 = _GUICtrlTreeView_AddChild($hTreeview, $hTVItem2, "Output", 0, 0)
$hTVItem = _GUICtrlTreeView_AddChild($hTreeview, $root, "E:\Hewlett-Packard\ESS Sizers\Profile Manager\Bin", 0, 0)
$hTVItem = _GUICtrlTreeView_AddChild($hTreeview, $root, "E:\SDOC", 0, 0)
_GUICtrlTreeView_EndUpdate($hTreeview)
_GUICtrlTreeView_Expand($hTreeview)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUIDelete($hGUI)
Exit
EndSwitch
WEnd
Func Create2DArray($string, $delimiter = "|")
If $string = "" Then Return SetError(1, 0, 0)
Local $aTemp = StringRegExp($string, "(.*\" & $delimiter & ".*)", 3), $aTmp, $i, $j
Local $2DArray[UBound($aTemp)][8]
For $i = 0 To UBound($aTemp) - 1
$aTmp = StringSplit($aTemp[$i], $delimiter)
For $j = 1 to $aTmp[0]
$2DArray[$i][$j - 1] = $aTmp[$j]
Next
Next
_ArraySort($2DArray, 0, 0, 0, 1)
Return SetError(0, 0, $2DArray)
EndFunc
Das Skript erzeugt die Ansicht, wie ich es haben will (manuell erstellt). Wie kann ich den Baum allgemein nach dem Beispiel erstellen? Der Knoten nur auf Level1 (unter Shares on TEST_System) soll editierbar sein!
Vielen DANK schon mal im voraus!
Gruß,
UEZ