Hallo Leute
Ich habe gerade einen FileViewer geschrieben, der euch die Dateien und Unterordner eines selbst gewählten Verzeichnisses anzeigt. Das hier vorgestellte Skript kann einzeln benutzt werden, ich arbeite aber ab jetzt an einer Fassung, mit der ich ihn in meinem Programm, dem "Copy Manager ", einbinden kann.
Bis das allerdings klappt freue ich mich über jede Unterstützung die ich kriegen kann!!
Ich bräuchte vor allen Dingen Hilfe bei der Erstellung einer ImageList, da vor allem bei der Suche nach den Icons z.B. von Games oder VLC-Dateien. Außerdem bei dem im Skript vermerkten Arraygrößen-Problem^^ Ich werde mich damit selbst weiter beschäftigen, wenn ich dieses Tool in meinen Copy Manager eingebaut habe aber bis dahin
So hier ist das Skript, ist egtl auch dann selbsterklärend wie es funktioniert Wie gesagt, ich habe es gerade erst zum Laufen bekommen, also noch nicht viel Verbeserungszeit investiert!!
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#Include <GuiTreeView.au3>
#include <File.au3>
#include <Array.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Index-Baum", 428, 364, 192, 124)
$TreeView1 = GUICtrlCreateTreeView(24, 16, 369, 265, BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_LINESATROOT,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS,$WS_GROUP,$WS_TABSTOP))
$Input1 = GUICtrlCreateInput("", 32, 312, 153, 21)
$Button1 = GUICtrlCreateButton("...", 192, 304, 100, 30, $BS_FLAT)
$Button2 = GUICtrlCreateButton("Laden", 304, 304, 100, 30, $BS_FLAT)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
#cs Script-Code-Schnipsel von Oscar!! Auf jedenfall brauch ich mehr Icons (weiß aber noch nicht woher ich die kriegen soll (brauche VLC usw.)
$hImage = _GUIImageList_Create(16, 16, 5, 1)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 3) ; Verzeichnis-Icon
_GUIImageList_AddIcon($hImage, 'shell32.dll', 110) ; Verzeichnis-Icon mit Haken
_GUIImageList_AddIcon($hImage, 'shell32.dll', 1) ; Datei-Icon
_GUIImageList_AddIcon($hImage, 'shell32.dll', 5) ; Diskette
_GUIImageList_AddIcon($hImage, 'shell32.dll', 7) ; Wechseldatenträger
_GUIImageList_AddIcon($hImage, 'shell32.dll', ; Festplatte
_GUIImageList_AddIcon($hImage, 'shell32.dll', 11) ; CDROM
_GUIImageList_AddIcon($hImage, 'shell32.dll', 12) ; Netzwerklaufwerk
_GUIImageList_AddIcon($hImage, 'shell32.dll', 53) ; Unbekannt
_GUICtrlTreeView_SetNormalImageList($TreeView1, $hImage)
#ce
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$TreeStartPath = FileSelectFolder("Bitte wählen sie das Startverzeichnis aus:", @DesktopDir, 1, "", $Form1)
GUICtrlSetData($Input1, $TreeStartPath)
Case $Button2
GUICtrlSetState($Button1, $GUI_DISABLE)
GUICtrlSetState($Button2, $GUI_DISABLE)
_CreateFolderView()
EndSwitch
WEnd
Func _CreateFolderView()
Dim $ChildItem[15999999] ;wusste nicht welche Größe ich nehmen sollte^^ vlt kann man das ja auch schöner lösen, könnte mir das mit _ArrayCreate und _ArrayAdd vorstellen^^
$StartPathSplit = StringSplit($TreeStartPath, "\")
$IndexItem = $StartPathSplit[$StartPathSplit[0]]
$ParentItem = _GUICtrlTreeView_Add($TreeView1, 0, $IndexItem)
Do
$FileList = _FileListToArray($TreeStartPath)
if IsArray($FileList) = 0 Then
_ShowSelected()
ExitLoop
endif
For $i = 1 to $FileList[0]
$ChildItem[$i] = _GUICtrlTreeView_AddChild($TreeView1, $ParentItem, $FileList[$i])
next
While 1
For $j = 1 to _GUICtrlTreeView_GetChildCount($TreeView1, $ParentItem)
$ItemSelected = _GUICtrlTreeView_GetSelected($TreeView1, $ChildItem[$j])
If $ItemSelected = True Then
$TreeStartPath = $TreeStartPath&"\"&_GUICtrlTreeView_GetText($TreeView1, $ChildItem[$j])
$ParentItem = $ChildItem[$j]
ExitLoop 2
endif
Next
WEnd
Until GUIGetMsg() = $GUI_EVENT_CLOSE
endfunc
func _ShowSelected()
MsgBox(0, "Kommt bald", "Diese Funktion ist in Arbeit!")
Return
endfunc
Ich bitte darum dieses Skript nicht als eures auszugeben!!
beste Grüße, sondaschuela69