Hallo Leute habe den DateiSucher erweitert Funkey hatte schon recht das _GetFilesFolder_Rekursiv
Nicht die richtige Func ist aber eine super alternative!
Option1: Es lassen sich alle Dateien suche egal wie sie geschrieben und auf welchem Lokalen Laufwerk sie liegt.
Option2: Suchen mit Wildcards Einzige Einschränkung das Dateien zusammenhängend geschrieben sein müssen und es lässt sich nicht auf CD/DVD Laufwerke suchen. [ und Netz.w.-Laufwerke ]
Option3: Doppelklick auf ein gefundenen Eintrag und es öffnet sich das Verzeichnis in dem die Datei liegt.
Neu!!!!!!
Option4: Auf Freigegebenen Netzwerk-Laufwerke suchen, bei Fund auch Ordner Öffnen möglich [ Die Funktion ist noch nicht ausreichend Getestet ]
Bitte Postet eure Test-Läufe!
Option5: ( Datei-Option) Dateien Kopieren, Verschieben, Löschen, Umbenennen [ nicht auf Netz.w.-Laufwerke ]
Update: überarbeitet!
Spoiler anzeigen
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=655.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ListviewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <_FileFindNet.au3>
#include <GuiListView.au3>
#include <String.au3>
#include <File.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $szDrive, $szDir, $szFName, $szExt, $EV, $evt, $Path
Global Const $D_B_C = -3
Local $SYS[13]
MsgBox(0, 'Info', 'Laufwerke werden Automatisch erkannt und durchsucht!')
GUICreate('Datei - Sucher', 800, 460, -1, -1)
GUISetBkColor(0x09999999)
GUISetOnEvent(-3, '_ExitComand')
$SYS[0] = GUICtrlCreateListView('', 0, 0, 800, 400)
Local $hLV = GUICtrlGetHandle($SYS[0])
_GUICtrlListView_AddColumn($hLV, 'Fund [ Laufwerk: \ Pfad \ Datei ] - DoubleClick zum Öffnen des Verzeichnis! ', 500)
$SYS[1] = GUICtrlCreateInput('', 5, 420, 240, 20)
$SYS[2] = GUICtrlCreateCheckbox('Nur Freigegebene Netzwerk-Laufwerke', 430, 410, 205, 20)
$SYS[3] = GUICtrlCreateLabel('Fund:', 690, 423, 30, 20)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetFont(-1, 9, 900, '', '')
$SYS[4] = GUICtrlCreateLabel('', 730, 423, 50, 20)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetFont(-1, 9, 900, '', '')
GUICtrlCreateButton('Suchen', 260, 417, 70, 25)
GUICtrlSetOnEvent(-1, '_Starter')
GUICtrlCreateButton('Option', 345, 417, 70, 25)
GUICtrlSetOnEvent(-1, 'OPSHOW')
$SYS[11] = GUICtrlCreateLabel('', 5, 443, 250, 20)
$SYS[12] = GUICtrlCreateCheckbox('Nur Pfad ausgabe ', 430, 430, 205, 20)
GUISetState()
GUIRegisterMsg(0x004E, 'VOeffnen')
Global $GUI1 = GUICreate('Datei Option', 480, 100, -1, -1, $WS_POPUPWINDOW)
GUISetBkColor(0x09999999)
$SYS[5] = GUICtrlCreateButton('Kopieren', 20, 30, 80, 22)
GUICtrlSetOnEvent(-1, 'Option')
$SYS[6] = GUICtrlCreateButton('Verschieben', 110, 30, 80, 22)
GUICtrlSetOnEvent(-1, 'Option')
$SYS[7] = GUICtrlCreateButton('Löschen', 200, 30, 80, 22)
GUICtrlSetOnEvent(-1, 'Option')
$SYS[8] = GUICtrlCreateButton('Umbenennen', 20, 58, 80, 22)
GUICtrlSetOnEvent(-1, 'Option')
$SYS[9] = GUICtrlCreateInput('', 110, 60, 350, 20)
GUICtrlCreateButton('Exit', 380, 30, 80, 22)
GUICtrlSetOnEvent(-1, '_Exit1')
GUICtrlCreateLabel(' Datei Option', 0, 5, 1000, 20, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetFont(-1, 11, 900, '', '')
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlCreateButton('Aktualisieren', 290, 30, 80, 22)
GUICtrlSetOnEvent(-1, 'OPSHOW')
GUISetState(@SW_HIDE, $GUI1)
Func _Starter()
Dim $Suche = GUICtrlRead($SYS[1]), $Drive, $st = '.', $a, $y, $z = 0, $j_N = 0, $co
If $Suche = '' Then Return GUICtrlCreateListViewItem(' " Error " Keine Eingabe im Suchfeld', $SYS[0])
If $Suche = '*.*' Or $Suche = '*.' Or $Suche = '.*' Then Return MsgBox(0, 'Info', 'Diese [*.*] Wildcard oder nur [*.] u. [.*] wird nicht unterstützt!')
_GUICtrlListView_DeleteAllItems($hLV)
GUICtrlSetData($SYS[4], '')
Dim $obWMI = ObjGet('winmgmts:\\' & $st & '\root\CIMV2')
If BitAND(GUICtrlRead($SYS[12]), $GUI_CHECKED) = $GUI_CHECKED Then $j_N = 1
If BitAND(GUICtrlRead($SYS[2]), $GUI_CHECKED) = $GUI_CHECKED Then
$co = $obWMI.ExecQuery('SELECT * FROM Win32_SystemNetworkConnections')
If Not IsObj($co) Then Return MsgBox(0, 'WMI Output', 'No WMI Objects Found for class: ' & 'Drive')
SplashTextOn('Suche gestartet', ' Bitte warten.....', 150, 40, -1, -1, 20, '', 13)
For $ob In $co
$y = StringSplit($ob.PartComponent, '\')
GUICtrlSetData($SYS[11], 'Suche in : ' & StringReplace('\\' & $y[9] & '\' & $y[11], '"', ''))
$a = _FileFindNet($Suche, StringReplace('\\' & $y[9] & '\' & $y[11], '"', ''), '', $j_N, 0)
For $n = 1 To UBound($a) - 1
GUICtrlCreateListViewItem($a[$n], $SYS[0])
Next
GUICtrlSetData($SYS[4], $a[0])
Next
Else
$co = DriveGetDrive('all')
SplashTextOn('Suche gestartet', ' Bitte warten.....', 150, 40, -1, -1, 20, "", 13)
For $i = 1 To UBound($co) - 1
$Drive = DriveGetFileSystem($co)
If @error = 1 Then ContinueLoop
GUICtrlSetData($SYS[11], 'Suche in : ' & _StringProper($co[$i] & '\') & ' ' & $Drive)
$a = _FileFindNet($Suche, '', _StringProper($co[$i] & '\'), $j_N, 0)
If @error Then ContinueLoop
$z += $a[0]
For $n = 1 To UBound($a) - 1
GUICtrlCreateListViewItem($a[$n], $SYS[0])
Next
GUICtrlSetData($SYS[4], $z)
Next
EndIf
_GUICtrlListView_SetColumnWidth($SYS[0], 0, $LVSCW_AUTOSIZE)
SplashOff()
EndFunc ;==>_Starter
Func OPSHOW()
If GUICtrlRead($SYS[0]) = ' ' Then Return MsgBox(0, 'Info', 'Bitte wählen sie eine Datei im Hauptprogramm [ Tabelle ] aus ! ')
$Path = _PathSplit(StringReplace(GUICtrlRead(GUICtrlRead($SYS[0])), '|', ' '), $szDrive, $szDir, $szFName, $szExt)
GUICtrlSetData($SYS[9], $Path[3] & $Path[4])
GUISetState(@SW_SHOW, $GUI1)
EndFunc ;==>OPSHOW
Func Option()
Dim $Folder, $len
$Path = _PathSplit(StringReplace(GUICtrlRead(GUICtrlRead($SYS[0])), '|', ' '), $szDrive, $szDir, $szFName, $szExt)
Switch @GUI_CtrlId
Case $SYS[5]
$Folder = FileSelectFolder('Ordner auswählen', '')
FileCopy($Path[1] & $Path[2] & GUICtrlRead($SYS[9]), $Folder & '\')
ShellExecute($Folder)
Case $SYS[6]
$Folder = FileSelectFolder('Ordner auswählen', '')
FileMove($Path[1] & $Path[2] & GUICtrlRead($SYS[9]), $Folder & '\')
ShellExecute($Folder)
Case $SYS[7]
FileDelete($Path[1] & $Path[2] & GUICtrlRead($SYS[9]))
Case $SYS[8]
If StringLeft(GUICtrlRead($SYS[11]), 2) = '\\' Then Return MsgBox(0, 'Info', ' Datei kann auf diesen Wege nicht Umbenannt werden!')
$len = StringLen($Path[1] & $Path[2])
Run(@ComSpec & ' /c ' & $Path[1] & ' & cd ' & StringLeft($Path[1] & $Path[2], $len - 1) & ' & REN ' & $Path[3] & $Path[4] & '' & GUICtrlRead($SYS[9]), '', @SW_HIDE, 2)
ShellExecute($Path[1] & $Path[2])
EndSwitch
EndFunc ;==>Option
Func VOeffnen($hWndGUI, $MsgID, $wP, $lP)
If GUICtrlRead(GUICtrlRead($SYS[0])) = '' Then Return (0)
$EV = DllStructCreate('int;int;int', $lP)
If @error Then Return
$evt = DllStructGetData($EV, 3)
If $wP = $SYS[0] Then
If $evt = $D_B_C Then
$Path = _PathSplit(StringReplace(GUICtrlRead(GUICtrlRead($SYS[0])), '|', ''), $szDrive, $szDir, $szFName, $szExt)
ShellExecute($Path[1] & $Path[2])
EndIf
EndIf
EndFunc ;==>VOeffnen
Func _ExitComand()
Exit
EndFunc ;==>_ExitComand
Func _Exit1()
GUISetState(@SW_HIDE, $GUI1)
EndFunc ;==>_Exit1
While 1 * Sleep(10)
WEnd
Lg Kleiner