#include <file.au3>
#include <GUIConstants.au3>
#include <Array.au3>

$ziel='"D:\Ordner Gottes\Filme\"'
GUICreate ( '.flv verschieben' , 300, 160, 0, 0)
$c01= GUICtrlCreateInput($ziel, 10, 10, 260, 20)
$c02= GUICtrlCreateButton ('', 275, 10, 20, 20, $BS_Icon)
$c03= GUICtrlSetImage (-1, 'shell32.dll', -5, 0)
$c04= GUICtrlCreateCheckbox('Ordner anschliessend öffnen', 10, 35, 280, 20)
	  GUICtrlSetState(-1, $GUI_CHECKED)
$c05= GUICtrlCreateCheckbox('Filme anschliessend öffnen', 10, 60, 280, 20)
	  GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateGroup ('Ergebnis:', 10, 80, 220, 60)
$c06= GUICtrlCreateLabel('', 15, 95, 210, 42)
$c09= GUICtrlCreateButton ('Starten', 240, 110, 50, 25)
GUICtrlCreateLabel('', 0, 141, 300, 22, $SS_ETCHEDFRAME)
$c07= GUICtrlCreateLabel('Bereit...', 5, 143, 100, 16)
$c08= GUICtrlCreateProgress (141, 142, 198, 20)
GUICtrlSetState(-1,$GUI_CHECKED)

GUICtrlSetState(-1,$GUI_CHECKED)
GUISetState (@SW_SHOW)       

While 1
    $msg = GUIGetMsg()
    
    Select
		Case $msg = $GUI_EVENT_CLOSE
			ExitLoop
		Case $msg = $c09
			Starte()
	EndSelect
Wend


Func Starte()
	$sVerschoben=''
	GUICtrlSetData($c08, 5)
	$quelle =StringTrimRight(FileGetShortName(RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\', 'Cache') & '\desktop.ini'), 12) & '\*.flv'
	GUICtrlSetData($c07, 'Suche .flv-Dateien...')
	ClipPut('dir ' & $quelle & ' /s /B /W > c:\flv.tmp')
	RunWait(@ComSpec & ' /c ' & ' dir ' & $quelle & ' /s /B /W > c:\flv.tmp', '', @SW_HIDE); /s =rekursiv /B=Kurzdarstellung /W=8.3 Format
	Sleep (2000)
	GUICtrlSetData($c08, 50)
	GUICtrlSetData($c07, ' Werte Suche aus...')
	$hflvtmp = FileOpen ('c:\flv.tmp',  0)
	$iZaehleZeilen = _FileCountLines('c:\flv.tmp')
	Dim $aArray[Int($iZaehleZeilen) + 1]
	Dim $aFehler[Int($iZaehleZeilen) + 1]
	For $i = 1 to $iZaehleZeilen
		;$sPfad = FileGetShortName(FileReadline($hflvtmp, $i))
		$sPfad = FileReadline($hflvtmp, $i)
		If $sPfad ='Datei nicht gefunden' Or StringLen($aArray[$i])  < 3 Then
		Else
			$iRueckgabewert = FileMove ($sPfad), $Ziel, 8)
			$aArray[$i]=$sPfad
			If $iRueckgabewert = 0 then $aFehler[$i]=$sPfad
		EndIf
	Next
	_ArrayDisplay($aArray)
	FileClose ($hflvtmp)
	GUICtrlSetData($c08, 75)
	GUICtrlSetData($c07, 'Liefere Ergebnis...')
	For $i = 1 to $iZaehleZeilen
		$sVerschoben = $sVerschoben & @CRLF & $aArray[$i]
	Next
	GUICtrlSetData($c06, $sVerschoben)
	GUICtrlSetData($c08, 90)
	
	If GUICtrlGetState($c04) = 80 then 
		GUICtrlSetData($c07, 'Öffne Explorer...')
		Run('explorer ' & $ziel)
	EndIf

	If GUICtrlGetState($c05) = 80 then 
		$sRealplayer=StringTrimRight(RegRead('HKEY_CLASSES_ROOT\Applications\RealPlay.exe\shell\open\command',''), 4)
		GUICtrlSetData($c07, 'Öffne Realplayer...')
		For $i = 1 to $iZaehleZeilen
			If $aArray[$i]='Keine Datei gefunden' Or StringLen($aArray[$i])  < 3  then ExitLoop
			Run ($sRealplayer & $aArray[$i])
		Next
	EndIf
	GUICtrlSetData($c08, 100)

	GUICtrlSetData($c07, 'Bereit f. neue Suche.')
EndFunc