Probleme bei befüllung einer Textarea

  • Hallo

    folgendes Script habe ich mir geschrieben:

    [autoit]

    #Include <GuiComboBox.au3>

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

    $GUI = GUICreate("ComboAddDir",400,300)
    $Combo = GUICtrlCreateCombo("", 2, 2, 396, 296)
    $Lesen = GUICtrlCreateButton("Lesen",20,30)
    GUISetState(@SW_SHOW)

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

    _GUICtrlComboBox_AddDir ($Combo, "Y:\Kiosk\*", $DDL_DIRECTORY + $DDL_EXCLUSIVE)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Lesen
    Msgbox(0,"Ergebnis","Gewählt wurde : " & GUICtrlRead($Combo))

    EndSwitch
    Wend

    [/autoit]

    Dort wird eine ComboBox erzeugt die mir die Ordnerstruktur aus einem vorgegebenen Verzeichniss ausließt.

    Mein Problem:
    Ich hätte darunter gerne eine Textarea die mir die Inhalte des ausgewählten Ordners in der ComboBox anzeigt.
    Geht das? Bin leider ein absoluter Neuling und bin daher dankbar für jede Hilfe!!

    Vielen Dank

    TKH

    • Offizieller Beitrag

    Hier mal ein Bsp.:

    Spoiler anzeigen
    [autoit]

    #Include <GuiComboBox.au3>
    #include <GuiListBox.au3>
    #include <File.au3>
    Global $aFile, $aFolder, $sTmp, $Path = "C:\Programme\"

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

    $GUI = GUICreate("ComboAddDir",400,300)
    $Combo = GUICtrlCreateCombo("", 2, 2, 396, 296)
    $Lesen = GUICtrlCreateButton("Lesen",20,30)
    $hList = _GUICtrlListBox_Create($GUI, '', 2, 65, 396, 230, BitOR($WS_HSCROLL, $WS_VSCROLL, $WS_BORDER) )
    GUISetState(@SW_SHOW)

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

    _GUICtrlComboBox_AddDir ($Combo, $Path & '*', $DDL_DIRECTORY + $DDL_EXCLUSIVE)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Lesen
    _GUICtrlListBox_ResetContent($hList) ; alte Inhalte löschen
    $sTmp = GUICtrlRead($Combo)
    If $sTmp <> '' Then
    $sTmp = StringTrimLeft(StringTrimRight(GUICtrlRead($Combo), 1), 1)
    $aFolder = _FileListToArray($Path & $sTmp, '*', 2)
    $aFile = _FileListToArray($Path & $sTmp, '*', 1)
    If IsArray($aFolder) Then
    _GUICtrlListBox_AddString($hList, '--------------- ORDNER ---------------')
    For $i = 1 To UBound($aFolder) -1
    _GUICtrlListBox_AddString($hList, $aFolder[$i])
    Next
    EndIf
    If IsArray($aFile) Then
    _GUICtrlListBox_AddString($hList, '--------------- DATEIEN ---------------')
    For $i = 1 To UBound($aFile) -1
    _GUICtrlListBox_AddString($hList, $aFile[$i])
    Next
    EndIf
    EndIf
    EndSwitch
    Wend

    [/autoit]

    Edit: Habs mal noch geändert um Ordner und Dateien getrennt anzuzeigen.

  • Wow das Programm ist ja super genau sowas suche ich.
    Hab aber noch eine Frage.

    in der textarea werden ja dann die entsprechenden Dateien angezeigt,
    die sich in dem Ordner befinden.....ist es möglich per Buttonklick die entsprechende Datei
    z.b. eine .doc Datei zu öffnen

    Vielen Dank
    TKH

    • Offizieller Beitrag

    Ja klar, mit ShellExecute / ShellExecuteWait wird das mit der Datei verknüpfte Programm gestartet.
    Ich habs mal hier als Bsp. für einen Simple Explorer gemacht.
    Die ComboBox habe ich hier rausgelassen, hier kannst du dich mit Doppelklick bewegen, ist einfacher.
    Weitere Optionen über Kontextmenü (Ausführen bei Ordner öffnet diesen im Explorer/ Kopieren/ Einfügen/ Umbenennen/ Löschen).
    Außerdem findest du eine Variable $Safed - dort sind die Attribute hinterlegt, für Dateien, die für: Ausführen, Umbenennen, Löschen gesperrt sind.

    Simple Explorer
    [autoit]

    #include <GuiListBox.au3>
    #include <File.au3>

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

    Global $aFile, $aFolder, $aPath[1] = [@HomeDrive & '\'], $currPath, $sUp = '[ EBENE HÖHER ]'
    Global $Safed = '[SHOC]' ; mit diesen Attributen gesperrt für: Ausführen, Umbenennen, Löschen

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

    $GUI = GUICreate("Simple Explorer",400,300)
    $label = GUICtrlCreateLabel('', 5, 5, 390, 53)
    $List = GUICtrlCreateList( '', 2, 65, 396, 230, BitOR($WS_HSCROLL, $WS_VSCROLL, $WS_BORDER))
    $hList = GUICtrlGetHandle($List)
    $menu = GUICtrlCreateContextMenu($List)
    $itemRun = GUICtrlCreateMenuItem('Ausführen', $menu)
    $itemShape = GUICtrlCreateMenuItem('', $menu)
    $itemCopy = GUICtrlCreateMenuItem('Kopieren', $menu)
    $itemPaste = GUICtrlCreateMenuItem('Einfügen', $menu)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $itemRen = GUICtrlCreateMenuItem('Umbenennen', $menu)
    $itemShape = GUICtrlCreateMenuItem('', $menu)
    $itemDel = GUICtrlCreateMenuItem('Löschen', $menu)
    GUISetState(@SW_SHOW)

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

    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

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

    _WriteList($aPath[0])

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $itemRun
    _RunFile()
    Case $itemCopy
    _CopyFile()
    Case $itemPaste
    _PasteFile()
    Case $itemRen
    _RenFile()
    Case $itemDel
    _DelFile()
    EndSwitch
    Wend

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

    Func _WriteList($PATH)
    _GUICtrlListBox_ResetContent($hList) ; alte Inhalte löschen
    $aFolder = _FileListToArray($PATH, '*', 2)
    $aFile = _FileListToArray($PATH, '*', 1)
    If UBound($aPath) > 1 Then _GUICtrlListBox_AddString($hList, $sUp)
    If IsArray($aFolder) Then
    _GUICtrlListBox_AddString($hList, '--------------- ORDNER ---------------')
    For $i = 1 To UBound($aFolder) -1
    _GUICtrlListBox_AddString($hList, $aFolder[$i])
    Next
    EndIf
    If IsArray($aFile) Then
    _GUICtrlListBox_AddString($hList, '--------------- DATEIEN ---------------')
    For $i = 1 To UBound($aFile) -1
    _GUICtrlListBox_AddString($hList, $aFile[$i])
    Next
    EndIf
    GUICtrlSetData($label, $PATH)
    EndFunc

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

    Func _ListDblClick()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    Local $tmpPath = ''
    If $str = $sUp Then
    ReDim $aPath[UBound($aPath)-1]
    $currPath = $aPath[UBound($aPath)-1]
    Else
    $currPath = $aPath[UBound($aPath)-1] & $str & '\' ; neuer Pfad = letzter Pfad + geklickter Pfad
    If Not StringRegExp(FileGetAttrib($currPath), 'D') Then _RunFile() ; ist es kein Ordner ?
    ReDim $aPath[UBound($aPath)+1]
    $aPath[UBound($aPath)-1] = $currPath ; neuen Pfad hinzufügen
    EndIf
    _WriteList($currPath)
    EndFunc

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

    Func _RunFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, $Safed) Then Return MsgBox(0, 'Geschützt!', $str & ' - Attribut: ' & $attrib)
    ShellExecuteWait($aPath[UBound($aPath)-1] & $str)
    EndFunc

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

    Func _CopyFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, 'D') Then Return MsgBox(0, 'Achtung', $str & ' ist keine Datei')
    ClipPut($aPath[UBound($aPath)-1] & $str)
    GUICtrlSetState($itemPaste, $GUI_ENABLE)
    EndFunc

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

    Func _PasteFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If Not StringRegExp($attrib, 'D') Then Return MsgBox(0, 'Achtung', $str & ' - ist kein Ordner')
    Local $tmp = ClipGet(), $pos = StringInStr($tmp, '\', -1)
    Local $file = StringRight($tmp, StringLen($tmp)-$pos)
    If FileExists($aPath[UBound($aPath)-1] & $str & '\' & $file) Then $file = 'Kopie von ' & $file
    FileCopy($tmp, $aPath[UBound($aPath)-1] & $str & '\' & $file)
    _WriteList($aPath[UBound($aPath)-1])
    GUICtrlSetState($itemPaste, $GUI_DISABLE)
    EndFunc

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

    Func _RenFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, $Safed) Then Return MsgBox(0, 'Geschützt!', $str & ' - Attribut: ' & $attrib)
    Local $tmp = InputBox('Umbenennen', 'Neuer Name:' & @LF & @LF & $aPath[UBound($aPath)-1], $str)
    If $tmp <> '' Then FileMove($aPath[UBound($aPath)-1] & $str, $aPath[UBound($aPath)-1] & $tmp)
    _WriteList($aPath[UBound($aPath)-1])
    EndFunc

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

    Func _DelFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, $Safed) Then Return MsgBox(0, 'Geschützt!', $str & ' - Attribut: ' & $attrib)
    FileDelete($aPath[UBound($aPath)-1] & $str)
    _WriteList($aPath[UBound($aPath)-1])
    EndFunc

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
    If Not IsHWnd($hList) Then $hWndListBox = GUICtrlGetHandle($hList)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $hWndFrom
    Case $hList, $hWndListBox
    Switch $iCode
    Case $LBN_DBLCLK ; Sent when the user double-clicks a string in a list box
    _ListDblClick()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • Super!!!
    Den Explorer finde ich total genial.
    Gibt es dort auch die Möglichkeit zusagen mit welchem Programm eine Datei geöffnet werden soll?
    Z.B. Soll ein Bild in Paint geöffnet werden!?

    Vielen Dank für deine Hilfe

    TKH

    • Offizieller Beitrag

    Gibt es dort auch die Möglichkeit zusagen mit welchem Programm eine Datei geöffnet werden soll?


    Klar, du kannst ja die Dateiendung abfragen und in Abhängigkeit davon ein bestimmtes Programm aufrufen.
    Hinterleg dir beim Start ein 2D-Array mit dem Aufbau:
    [n][0] = Dateiendung(en)
    [n][1] = zugehöriger Programmpfad

    Hier mal ein Bsp. - kannst es ja dann einbauen.

    Spoiler anzeigen
    [autoit]

    Global $aZuordnung[2][2] = [ _
    ['ico|bmp|jpg', 'mspaint.exe '], _
    ['txt|ini|log', 'notepad.exe ']]; Leerzeichen hinter Dateinamen ist wichtig für Aufruf!

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

    $PicPath = "C:\Dokumente und Einstellungen\Standard\Eigene Dateien\Eigene Bilder\pda.ico"
    $Application = _GetApplication($PicPath)
    If $Application = -1 Then ; keine Anwendung hinterlegt
    ShellExecuteWait($PicPath) ; mit Standardanwendung ausführen
    Else
    RunWait($Application & '"' & $PicPath & '"') ; Dateipfad muß in "" eingebettet sein!
    EndIf

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

    Func _GetApplication($PATH)
    Local $SUFFIX = StringRight($PATH, StringLen($PATH)-StringInStr($PATH, '.', 1, -1))
    For $i = 0 To UBound($aZuordnung) -1
    If StringInStr($aZuordnung[$i][0], $SUFFIX) Then Return $aZuordnung[$i][1]
    Next
    Return -1 ; keine Anwendung hinterlegt
    EndFunc

    [/autoit]
  • BugFix : Die LisDblClick ist nicht ganz in Ordnung. Es wird auch bei Dateien in ein neues Verzeichnis gewechselt :P
    Korrigiert sieht das z.B. so aus:

    Spoiler anzeigen
    [autoit]

    Func _ListDblClick()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    Local $tmpPath = ''
    Select
    Case $str = $sUp
    ReDim $aPath[UBound($aPath)-1]
    $currPath = $aPath[UBound($aPath)-1]
    Case $str = "--------------- ORDNER ---------------" Or $str = '--------------- DATEIEN ---------------'
    Return
    Case Else
    If Not StringInStr(FileGetAttrib($aPath[UBound($aPath)-1] & $str), 'D') Then Return _RunFile() ; ist es kein Ordner ?
    $currPath = $aPath[UBound($aPath)-1] & $str & '\' ; neuer Pfad = letzter Pfad + geklickter Pfad
    ;~ If Not StringRegExp(FileGetAttrib($currPath), 'D') Then _RunFile() ; ist es kein Ordner ?
    ReDim $aPath[UBound($aPath)+1]
    $aPath[UBound($aPath)-1] = $currPath ; neuen Pfad hinzufügen
    EndSelect
    _WriteList($currPath)
    EndFunc

    [/autoit]
  • Eine Frage hätte ich noch. Ich bekomme dein Code Bsp. von oben nicht in deinen tollen Explorer eingebaut.
    Könntest du mir dabei nochmal helfen?

    Ich habe hier speziell das Problem das ich über deinen Explorer eine PowerPoint Präsentation öffnen möchte.
    Da auf dem rechner nur der Viewer installiert ist klappt dies nicht. Da er den Pfad nicht findet.

    Alle anderen Sachen wie word und Excel Dokumente funktionieren und lassen sich problemlos öffnen


    Vielen dank
    TKH

    Einmal editiert, zuletzt von TKH (4. April 2008 um 15:38)

    • Offizieller Beitrag

    Guckst du hier: ;)

    Spoiler anzeigen
    [autoit]

    #include <GuiListBox.au3>
    #include <File.au3>

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

    Global $aFile, $aFolder, $aPath[1] = [@HomeDrive & '\'], $currPath, $sUp = '[ EBENE HÖHER ]'
    Global $Safed = '[SHOC]' ; mit diesen Attributen gesperrt für: Ausführen, Umbenennen, Löschen
    Global $Application, $RunPath
    Global $aZuordnung[2][2] = [ _
    ['ico|bmp|jpg', 'mspaint.exe '], _
    ['txt|ini|log', 'notepad.exe ']]; Leerzeichen hinter Dateinamen ist wichtig für Aufruf!
    ; Je nach Anwendung kann es notwendig sein, den kpl. Pfad anzugeben!!

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

    $GUI = GUICreate("Simple Explorer",400,300)
    $label = GUICtrlCreateLabel('', 5, 5, 390, 53)
    $List = GUICtrlCreateList( '', 2, 65, 396, 230, BitOR($WS_HSCROLL, $WS_VSCROLL, $WS_BORDER))
    $hList = GUICtrlGetHandle($List)
    $menu = GUICtrlCreateContextMenu($List)
    $itemRun = GUICtrlCreateMenuItem('Ausführen', $menu)
    $itemShape = GUICtrlCreateMenuItem('', $menu)
    $itemCopy = GUICtrlCreateMenuItem('Kopieren', $menu)
    $itemPaste = GUICtrlCreateMenuItem('Einfügen', $menu)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $itemRen = GUICtrlCreateMenuItem('Umbenennen', $menu)
    $itemShape = GUICtrlCreateMenuItem('', $menu)
    $itemDel = GUICtrlCreateMenuItem('Löschen', $menu)
    GUISetState(@SW_SHOW)

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

    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

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

    _WriteList($aPath[0])

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $itemRun
    _RunFile()
    Case $itemCopy
    _CopyFile()
    Case $itemPaste
    _PasteFile()
    Case $itemRen
    _RenFile()
    Case $itemDel
    _DelFile()
    EndSwitch
    Wend

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

    Func _WriteList($PATH)
    _GUICtrlListBox_ResetContent($hList) ; alte Inhalte löschen
    $aFolder = _FileListToArray($PATH, '*', 2)
    $aFile = _FileListToArray($PATH, '*', 1)
    If UBound($aPath) > 1 Then _GUICtrlListBox_AddString($hList, $sUp)
    If IsArray($aFolder) Then
    _GUICtrlListBox_AddString($hList, '--------------- ORDNER ---------------')
    For $i = 1 To UBound($aFolder) -1
    _GUICtrlListBox_AddString($hList, $aFolder[$i])
    Next
    EndIf
    If IsArray($aFile) Then
    _GUICtrlListBox_AddString($hList, '--------------- DATEIEN ---------------')
    For $i = 1 To UBound($aFile) -1
    _GUICtrlListBox_AddString($hList, $aFile[$i])
    Next
    EndIf
    GUICtrlSetData($label, $PATH)
    EndFunc

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

    Func _ListDblClick()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    Local $tmpPath = ''
    If $str = $sUp Then
    ReDim $aPath[UBound($aPath)-1]
    $currPath = $aPath[UBound($aPath)-1]
    _WriteList($currPath)
    Else
    $currPath = $aPath[UBound($aPath)-1] & $str & '\' ; neuer Pfad = letzter Pfad + geklickter Pfad
    If Not StringRegExp(FileGetAttrib($currPath), 'D') Then ; ist es kein Ordner ?
    _RunFile()
    Else
    ReDim $aPath[UBound($aPath)+1]
    $aPath[UBound($aPath)-1] = $currPath ; neuen Pfad hinzufügen
    _WriteList($currPath)
    EndIf
    EndIf
    EndFunc

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

    Func _RunFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, $Safed) Then Return MsgBox(0, 'Geschützt!', $str & ' - Attribut: ' & $attrib)
    $RunPath = $aPath[UBound($aPath)-1] & $str
    $Application = _GetApplication($RunPath)
    If $Application = -1 Then ; keine Anwendung hinterlegt
    ShellExecuteWait($RunPath) ; mit Standardanwendung ausführen
    Else
    RunWait($Application & '"' & $RunPath & '"') ; Dateipfad muß in "" eingebettet sein!
    EndIf
    EndFunc

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

    Func _GetApplication($PATH)
    Local $SUFFIX = StringRight($PATH, StringLen($PATH)-StringInStr($PATH, '.', 1, -1))
    For $i = 0 To UBound($aZuordnung) -1
    If StringInStr($aZuordnung[$i][0], $SUFFIX) Then Return $aZuordnung[$i][1]
    Next
    Return -1 ; keine Anwendung hinterlegt
    EndFunc

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

    Func _CopyFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, 'D') Then Return MsgBox(0, 'Achtung', $str & ' ist keine Datei')
    ClipPut($aPath[UBound($aPath)-1] & $str)
    GUICtrlSetState($itemPaste, $GUI_ENABLE)
    EndFunc

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

    Func _PasteFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If Not StringRegExp($attrib, 'D') Then Return MsgBox(0, 'Achtung', $str & ' - ist kein Ordner')
    Local $tmp = ClipGet(), $pos = StringInStr($tmp, '\', -1)
    Local $file = StringRight($tmp, StringLen($tmp)-$pos)
    If FileExists($aPath[UBound($aPath)-1] & $str & '\' & $file) Then $file = 'Kopie von ' & $file
    FileCopy($tmp, $aPath[UBound($aPath)-1] & $str & '\' & $file)
    _WriteList($aPath[UBound($aPath)-1])
    GUICtrlSetState($itemPaste, $GUI_DISABLE)
    EndFunc

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

    Func _RenFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, $Safed) Then Return MsgBox(0, 'Geschützt!', $str & ' - Attribut: ' & $attrib)
    Local $tmp = InputBox('Umbenennen', 'Neuer Name:' & @LF & @LF & $aPath[UBound($aPath)-1], $str)
    If $tmp <> '' Then FileMove($aPath[UBound($aPath)-1] & $str, $aPath[UBound($aPath)-1] & $tmp)
    _WriteList($aPath[UBound($aPath)-1])
    EndFunc

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

    Func _DelFile()
    Local $str = _GUICtrlListBox_GetText($hList, _GUICtrlListBox_GetCurSel($hList))
    If $str = '' Then Return
    Local $attrib = FileGetAttrib($aPath[UBound($aPath)-1] & $str)
    If StringRegExp($attrib, $Safed) Then Return MsgBox(0, 'Geschützt!', $str & ' - Attribut: ' & $attrib)
    FileDelete($aPath[UBound($aPath)-1] & $str)
    _WriteList($aPath[UBound($aPath)-1])
    EndFunc

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
    If Not IsHWnd($hList) Then $hWndListBox = GUICtrlGetHandle($hList)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $hWndFrom
    Case $hList, $hWndListBox
    Switch $iCode
    Case $LBN_DBLCLK ; Sent when the user double-clicks a string in a list box
    _ListDblClick()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]