Gunten Morgen!
Ich habe ja dieses kleine Dateibrowser script.
Funktioiert soweit alles so.
Nur ist die Sortierung in der ListView alphabetisch.
Das sieht aus wie ein großes Chaos.
Ich möchte aber gerne das es nach Ornern und Dateien Sortiert ist.
Wüsste da jemand von euch wie ich so eine Sotrierung hinbekomme?
Spoiler anzeigen
;########## START ##########
#cs
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ BrowseNET BETA 2 +
+ +
+ Version: 0.7.9 BETA +
+ +
+ Autor: Kay Stratmann +
+ mit freundlicher Unterstützung von http://www.autoit.de +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#ce
;////////// GLOBALS \\\\\\\\\\
Global Const $NM_FIRST = 0
Global Const $NM_DBLCLK = -3
;////////// ENDE \\\\\\\\\\
;////////// HOTKEYS \\\\\\\\\\
HotKeySet("{F1}", "_help")
;////////// ENDE \\\\\\\\\\
;////////// INCLUDES \\\\\\\\\
#include <GUIConstants.au3>
#include <GuiListView.au3>
#Include <process.au3>
#include <string.au3>
;////////// ENDE \\\\\\\\\\
;////////// OPTIONS \\\\\\\\\\
Opt("GUIOnEventMode", 1)
;////////// ENDE \\\\\\\\\\
;////////// MAINSETTINGS \\\\\\\\\
$datei1 = @ScriptDir & "\ordner.db"
$Masterpfad = IniRead(@Scriptdir & "\konfiguration.ini", "Masterpfad", "Value", @Scriptdir & "\")
$pfad = $masterpfad
$autostart = IniRead(@ScriptDir & "\konfiguration.ini", "Autostart", "VALUE", "4")
$pass_read = IniRead(@ScriptDir & "\konfiguration.ini", "Passwort", "Value", "")
$encrypt = _StringEncrypt(0, $pass_read, "last")
;////////// ENDE \\\\\\\\\\
;////////// GUIS \\\\\\\\\\
;~~~~~~~~~~ MAINGUI ~~~~~~~~~~~
$MAIN_GUI = GUICreate("BrowseNET", 200, 440, 0, 0) ;ERSTELLT DIE GUI
GUISetHelp("BrowseNET.exe")
$search = FileFindFirstFile($pfad & "*.*")
$LIST_FOLDER = GUICtrlCreateListView("Scripte", 0, 0, 200, 410, $LVS_NOCOLUMNHEADER);ERSTELLT EINE LISTE
_GUICtrlListViewSetColumnWidth($LIST_FOLDER, 0, 180) ; Breite = 200 minus Scrollbalken
GUIRegisterMsg(0x004E, "_DoubleClickOnListView") ;DOPPELKLICK FUNKTION
$main_btn1 = GUICtrlCreateButton("Zurück zum Startpfad", 37, 415, 120, 20) ;ERSTELLT EINEN BUTTON
GUICtrlSetOnEvent($main_btn1, "_back")
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit") ;CLOSE BUTTON
GUISetState(@SW_Show) ;SETZT DIE GUI AUF SHOW
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ DATEI ~~~~~~~~~~
$DATEI_MENUE = GUICtrlCreateMenu("Datei") ;ERSTELLT DAS MENUE
$DATEI_ITEM1 = GUICtrlCreateMenu("Export", $Datei_Menue) ;ERSTELLT EIN ITEM
$Export_ITEM1 = GUICtrlCreateMenuitem("Textdatei", $Datei_Item1) ;TEXTDATEI
GUICtrlSetOnEvent($Export_ITEM1, "_export_text") ;EXPORT TEXT
$Export_ITEM2 = GUICtrlCreateMenuitem("Exceldatei", $Datei_Item1) ;EXCELDATEI
GUICtrlSetOnEvent($Export_item2, "_export_excel")
$DATEI_ITEM2 = GUICtrlCreateMenuitem("Beenden", $DATEI_MENUE) ;ERSTELLT EIN ITEM
GUICtrlSetOnEvent($DATEI_ITEM2, "_exit") ;BEENDEN
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ OPTIONEN ~~~~~~~~~~
$OPTION_MENUE = GUICtrlCreateMenu("Optionen") ;ERSTELLT DAS MENUE
$OPTION_ITEM1 = GUICtrlCreateMenuitem("Einstellungen", $OPTION_MENUE) ;ERSTELLT EIN ITEM
GUICtrlSetOnEvent($OPTION_ITEM1, "_pw_gui") ;OPTIONEN GUI
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ INHALT LADEN ~~~~~~~~~~
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
GUICtrlCreateListViewItem($file, $LIST_FOLDER)
WEnd
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ OPTIONGUI ~~~~~~~~~~
$OPT_GUI = GUICreate("Optionen", 200, 195) ;ERSTELLT DIE GUI
GUICtrlCreateLabel("Masterpfad", 10, 10, 100, 20) ;ERSTELLT EIN LABEL
GUICtrlCreateLabel("INFO: Die Pfadangabe muss immer mit einem ''\'' enden!", 10, 160, 180, 50) ;ERSTELLT EIN LABEL
GUICtrlCreateLabel("Passwort", 10, 60, 75, 20) ;ERSTELLT EIN LABEL
$opt_input1 = GUICtrlCreateInput($Masterpfad, 10, 30, 180, 20) ;ERSTELLT EIN INPUTFELD
$opt_input2 = GUICtrlCreateInput($encrypt, 10, 80, 180, 20) ;ERSTELLT EIN INPUTFELD
$checkbox = GUICtrlCreateCheckbox("Autostart", 15, 105) ;CHECKBOX
GUICtrlSetState(-1, $autostart)
$opt_btn1 = GUICtrlCreateButton("OK", 10, 135, 75, 20) ;ERSTELLT EINEN BUTTON
GUICtrlSetOnEvent($opt_btn1, "_Opt_save") ;EINSTELLUNGEN SPEICHERN
$opt_btn2 = GUICtrlCreateButton("Abbrechen", 115, 135, 75, 20) ;ERSTELLT EIEN BUTTON
GUICtrlSetOnEvent($opt_btn2, "_opt_hide") ;ABBRECHEN
GUISetOnEvent($GUI_EVENT_CLOSE, "_opt_hide") ;BEENDEN
GUISetState(@SW_Hide, $OPT_GUI) ;SETZT DIE GUI AUF HIDE
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ PASSWORTGUI ~~~~~~~~~~
$pw_gui = GUICreate("Passwort", 200, 70) ;ERSTELLT DIE GUI
$pw_input = GUICtrlCreateInput("", 10, 10, 180, 20, $ES_PASSWORD) ;INPUTFELD
$pw_btn1 = GUICtrlCreateButton("Login", 10, 40, 75, 20) ;BUTTON
GUICtrlSetOnEvent($pw_btn1, "_pw_login") ;LOGIN
$pw_btn2 = GUICtrlCreateButton("Abbrechen", 115, 40, 75, 20) ;BUTTON
GUICtrlSetOnEvent($pw_btn2, "_pw_hide") ;ABBRECHEN
GUISetOnEvent($GUI_EVENT_CLOSE, "_pw_hide") ;BEENDEN
GUISetState(@SW_Hide, $pw_gui) ;SETZT DIE GUI AUF HIDE
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;////////// ENDE \\\\\\\\\\
;////////// WHILESCHLEIFE \\\\\\\\\\
While 1 ;BEGINN DER SCHLEIFE
Sleep(100) ;100MS PAUSE
WEnd ;SCHLEIFENENDE
;////////// ENDE \\\\\\\\\\
;////////// FUNKTIONEN \\\\\\\\\\
;~~~~~~~~~~ HELP ~~~~~~~~~~
FUNC _help()
_RunDOS("start " & @ScriptDir & "\Readme.txt")
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ EXPORT ~~~~~~~~~~
Func _export_text()
$exp_txt = FileSaveDialog("Export", Default, "(*.txt)", 16, "Export.txt")
If @error Then
;
Else
If FileExists($exp_txt) Then
FileDelete($exp_txt)
EndIf
$filesearch = FileFindFirstFile($pfad & "*.*")
While 1
$filefind = FileFindNextFile($filesearch)
If @error Then ExitLoop
FileWriteLine($exp_txt, $filefind)
FileClose($exp_txt)
WEnd
_RunDOS("start " & $exp_txt)
EndIf
EndFunc
Func _export_excel()
$exp_xls = FileSaveDialog("Export", Default, "(*.xls)", 16, "Export.xls")
If @error Then
;
Else
If FileExists($exp_xls) Then
FileDelete($exp_xls)
EndIf
$filesearch = FileFindFirstFile($pfad & "*.*")
While 1
$filefind = FileFindNextFile($filesearch)
If @error Then ExitLoop
FileWriteLine($exp_xls, $filefind)
FileClose($exp_xls)
WEnd
_RunDOS("start " & $exp_xls)
EndIf
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ PASSWORT~~~~~~~~~~
Func _pw_gui()
GUISetState(@SW_SHOW, $pw_gui) ;SETZT DIE GUI AUF SHOW
EndFunc
Func _pw_hide()
GUISetState(@SW_HIDE, $pw_GUI) ;SETZT DIE GUI AUF HIDE
EndFunc
Func _pw_login()
$pw_input_read = GUICtrlRead($pw_input)
If $pw_input_read == $encrypt Then
GUISetState(@SW_SHOW, $opt_gui) ;SETZT DIE GUI AUF SHOW
GUISetState(@SW_HIDE, $pw_gui) ;SETZT DIE GUI AUF HIDE
Else
MsgBox(0, "EINGABE FALSCH", "Das Passwort welches Sie eingegeben haben ist nicht korrekt!") ;MSGBOX
EndIf
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~
;~~~~~~~~~~ OPTIONEN ~~~~~~~~~~
Func _opt_hide()
GUISetState(@SW_HIDE, $opt_GUI) ;SETZT DIE GUI AUF HIDE
EndFunc
Func _opt_save()
$opt_input1_read = GUICtrlRead($opt_input1) ;ERSTELLT EIN INPUTFELD
$opt_input2_read = GUICtrlRead($opt_input2)
IniWrite(@Scriptdir & "\konfiguration.ini", "Masterpfad", "Value", $opt_input1_read);SCHREIBT IN EINE INIDATEI
IniWrite(@ScriptDir & "\konfiguration.ini", "Autostart", "Value", GUICtrlRead($Checkbox))
$crypt = _StringEncrypt(1, $opt_input2_read, "last")
IniWrite(@ScriptDir & "\konfiguration.ini", "Passwort", "Value", $crypt)
If GUICtrlRead($checkbox) = "4" Then
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "BrowseNET")
EndIf
If GUICtrlRead($checkbox) = "1" Then
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "BrowseNET", "REG_SZ", @ScriptFullPath)
EndIf
MsgBox(0, "Einstellungen", "Die änderungen werden erst nach einem Neustart des Programms in kraft treten")
GUISetState(@SW_HIDE, $OPT_GUI)
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ ZURÜCK ~~~~~~~~~~
Func _back()
$pfad = $Masterpfad
$filesearch2 = FileFindFirstFile($pfad & "*.*")
_GUICtrlListViewDeleteAllItems($LIST_FOLDER)
While 1
$filefind2 = FileFindNextFile($filesearch2)
If @error Then ExitLoop
GUICtrlCreateListViewItem($filefind2, $LIST_FOLDER)
WEnd
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;~~~~~~~~~~ BEENDEN ~~~~~~~~~
Func _exit()
;IniWrite(@Scriptdir & "\konfiguration.ini", "Pfad", "Value", "I:\DV\dv3\scripte\ordner\")
Exit ;BEENDEN
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;////////// ENDE \\\\\\\\\\
;////////// EXTERN [AUTOIT.DE] \\\\\\\\\\
;~~~~~~~~~~ DOUBLECLICK ~~~~~~~~~~
Func _DoubleClickOnListView($hWndGUI, $MsgID, $wParam, $lParam);Die Eigentliche Funktion
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3); Checkt wie das EVENT aussieht
If $wParam = $List_Folder Then;Wenn der Klick auf das ListView ging..
If $event = $NM_DBLCLK Then;.. Wenn es ein DoppelKlick war
; Hier kommt hin was er machen soll:
$read_select = GUICtrlRead(GUICtrlRead($LIST_FOLDER))
If StringInStr(FileGetAttrib($pfad & $read_select),"D") Then
IniWrite(@Scriptdir & "\konfiguration.ini", "Pfad", "Value", $pfad & $read_select & "\")
$pfad = IniRead(@Scriptdir & "\konfiguration.ini", "Pfad", "Value", "")
$filesearch = FileFindFirstFile($pfad & "*.*")
_GUICtrlListViewDeleteAllItems($LIST_FOLDER)
While 1
$filefind = FileFindNextFile($filesearch)
If @error Then ExitLoop
GUICtrlCreateListViewItem($filefind, $LIST_FOLDER)
WEnd
Else
_RunDOS("Start " & $pfad & $read_select)
EndIf
EndIf
EndIf
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc
;~~~~~~~~~~ ENDE ~~~~~~~~~~
;////////// ENDE \\\\\\\\\\
;########## ENDE ##########
[/autoit]