Ich hab für meine Schwester mal einen kleines Programm geschreiben, denn sie läd sich als Videos aus YouTube, und dann Stand da bei über 100 Titeln immer YouTube vor, und sie hat mich gefragt wie sie das alles auf einmal wegbekommt, da hab ich ihr gesagt das ich ihr ein Programm schreiben kann, gesagt Getan
Man kann damit so viele Datein auf einmal auswählen wie man will, und bei denen dann Einen Text ersetzen lassen, durch nichts oder was anderes, mit Beispiel in einer ListView.
Spoiler anzeigen
#include <GuiListView.au3>
#include <Array.au3>
$INI = @ScriptDir & "\Konfig.ini"
#region ### START Koda GUI section ### Form=
$FORM1 = GUICreate("Datei-Umbenner", 515, 476, 282, 277, 0x00040000)
$LISTVIEW1 = GUICtrlCreateListView("Dateiname|Neuer Name|Pfad", 2, 2, 510, 326)
GUICtrlSendMsg(-1, 4126, 0, 150)
GUICtrlSendMsg(-1, 4126, 1, 150)
GUICtrlSendMsg(-1, 4126, 2, 200)
$INPUT1 = GUICtrlCreateInput(IniRead ($INI,"FileOpen","IN1",""), 2, 358, 509, 21)
$BUTTON1 = GUICtrlCreateButton("Hinzufügen", 436, 330, 75, 25, 0)
$BUTTON2 = GUICtrlCreateButton("Entfernen", 361, 330, 75, 25, 0)
$LABEL1 = GUICtrlCreateLabel("Zu ersetzender Text:", 2, 340, 102, 17)
$BUTTON3 = GUICtrlCreateButton("Ersetzen", 436, 422, 75, 25, 0)
$INPUT2 = GUICtrlCreateInput(IniRead ($INI,"FileOpen","IN2",""), 3, 400, 509, 21)
$LABEL2 = GUICtrlCreateLabel("Ersetzen mit:", 3, 382, 64, 17)
$BUTTON4 = GUICtrlCreateButton("Liste Leeren", 286, 330, 75, 25, 0)
$BUTTON5 = GUICtrlCreateButton("Beispiel anzeigen", 336, 422, 100, 25, 0)
$Check = GUICtrlCreateRadio ("Dateien",20,425)
GUICtrlSetState (-1,1)
GUICtrlCreateRadio ("Ordner",80,425)
GUISetState(@SW_SHOW)
#endregion ### START Koda GUI section ### Form=
GUIRegisterMsg(0x0024, "MY_WM_GETMINMAXINFO")
While 1
$NMSG = GUIGetMsg()
Switch $NMSG
Case -3
Exit
Case $BUTTON4
_GUICTRLLISTVIEW_DELETEALLITEMS($LISTVIEW1)
Case $BUTTON2
_GUICTRLLISTVIEW_DELETEITEMSSELECTED($LISTVIEW1)
Case $BUTTON1
_HINZUFUEGEN()
Case $BUTTON5
_BEISPIEL()
Case $BUTTON3
_UMBENENNEN()
EndSwitch
WEnd
Func _HINZUFUEGEN()
If GUICtrlRead ($Check) = 1 Then
$FILE = FileOpenDialog("Dateiauswahl", IniRead($INI, "FileOpen", "Pfad", ""), "Alle (*.*)", 4)
If @error Then Return
$SFILE = StringSplit($FILE, "|")
If $SFILE[0] > 1 Then
IniWrite($INI, "FileOpen", "Pfad", $SFILE[1])
If $SFILE[0] > 0 Then
For $1 = 2 To $SFILE[0]
GUICtrlCreateListViewItem($SFILE[$1] & "||" & $SFILE[1], $LISTVIEW1)
Next
EndIf
Else
$SFILE = StringSplit($FILE, "\")
$Pfad1 = StringLeft ($FILE,StringLen ($FILE) - StringLen ($SFILE[$SFILE[0]]))
GUICtrlCreateListViewItem($SFILE[$SFILE[0]] & "||" & $Pfad1, $LISTVIEW1)
IniWrite($INI, "FileOpen", "Pfad", $Pfad1)
EndIf
Else
$Ordner = FileSelectFolder ("Ordnerauswahl",Default,0,IniRead ($INI,"FileOpen","Pfad",@DesktopDir))
If @error Then Return
$Filter = InputBox ("Dateiendung","Gib die Dateiendung an" & @CRLF & "Beispiel: *.mp3",IniRead ($INI,"FileOpen","Filter","*.mp3"))
If @error Then Return
IniWrite ($INI,"FileOpen","Filter",$Filter)
$First = FileFindFirstFile ($Ordner & "\" & $Filter)
While 1
$FILE = FileFindNextFile($First)
If @error Then ExitLoop
$SFILE = StringSplit ($FILE,"\")
$Pfad = StringLeft ($FILE,StringLen ($FILE) - StringLen ($SFILE[$SFILE[0]]) -1)
GUICtrlCreateListViewItem($SFILE[$SFILE[0]] & "||" & $Pfad, $LISTVIEW1)
Wend
EndIf
EndFunc
Func _BEISPIEL()
$TEXT = GUICtrlRead($INPUT1)
$ER = GUICtrlRead($INPUT2)
IniWrite ($INI,"FileOpen","IN1",$TEXT)
IniWrite ($INI,"FileOpen","IN2",$ER)
For $1 = 0 To _GUICTRLLISTVIEW_GETITEMCOUNT($LISTVIEW1)
_GUICTRLLISTVIEW_SETITEMTEXT($LISTVIEW1, $1, StringReplace(_GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 0), $TEXT, $ER), 1)
Next
EndFunc
Func _UMBENENNEN()
_BEISPIEL()
For $1 = 0 To _GUICTRLLISTVIEW_GETITEMCOUNT($LISTVIEW1)
FileMove(_GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 2) & "\" & _GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 0), _GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 2) & "\" & _GUICTRLLISTVIEW_GETITEMTEXT($LISTVIEW1, $1, 1))
Next
_GUICTRLLISTVIEW_DELETEALLITEMS($LISTVIEW1)
EndFunc
Func MY_WM_GETMINMAXINFO($HWND, $MSG, $WPARAM, $LPARAM)
If $HWND = $FORM1 Then
Local $MINMAXINFO = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $LPARAM)
DllStructSetData($MINMAXINFO, 7, 515)
DllStructSetData($MINMAXINFO, 8, 476)
EndIf
EndFunc