Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <file.au3>
#include <Array.au3>
#include <_FileListToArrayEx_v3.au3>
; ########## Début de la création de la GUI 1 principal ##########
$GUI1 = GUICreate("ToolSearch by © Labougie", 470, 450, -1, -1) ; Création de la GUI1
$Lb1 = GUICtrlCreateLabel("Outil de recherche", 150, 10, 200, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
Global $Group1 = GUICtrlCreateGroup("Recherche Spot Light", 25, 40, 185, 177) ;création d'un cadre dans le Gui
;GUISetBkColor(0xFFFFFF) ;code couleur blanc
;GUISetBkColor(0xE0FFFF)code couleur bleu pas beau
;GUISetBkColor(0xB9D1EA)code bleu gris type FRST
Global $Group2 = GUICtrlCreateGroup("Recherche un Fichier", 220, 40, 185, 177)
Global $Group3 = GUICtrlCreateGroup("Liste les Extensions", 25, 220, 185, 177)
Global $Group4 = GUICtrlCreateGroup("Recherche un Dossier", 220, 220, 185, 177)
Global $Group5 = GUICtrlCreateGroup("Drives", 410, 40, 45, 357)
$Btn01 = GUICtrlCreateButton("Dossier ToolSearch", 100, 410, 105, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, 0xB9D1EA)
$Btn02 = GUICtrlCreateButton("Exit", 220, 410, 50, 25)
GUICtrlSetBkColor(-1, 0xB9D1EA) ; donne la couleur de la commande juste au dessus
; ########## Fin de la création de la GUI 1 ##########
; ########## Début de la création du Group1 Recherche Spot Light ##########
Global $Input11 = GUICtrlCreateInput("Input11", 30, 80, 90, 20)
Global $Input12 = GUICtrlCreateInput("Input12", 30, 110, 90, 20)
$lbl11 = GUICtrlCreateLabel("Saisir le chemin c:\ ou vide ", 125, 76, 80, 30)
$lbl12 = GUICtrlCreateLabel("Saisir Le nom", 125, 112, 80, 30)
$Btn11 = GUICtrlCreateButton("Exécuter", 30, 180, 50, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, 0xB9D1EA)
$Btn12 = GUICtrlCreateButton("Rapports", 85, 180, 50, 25)
GUICtrlSetBkColor(-1, 0xB9D1EA)
; ########## Début de la création du Group2 Recherche Fichier ##########
Global $Input21 = GUICtrlCreateInput("Input21", 225, 80, 90, 20)
Global $Input22 = GUICtrlCreateInput("Input22", 225, 110, 90, 20)
Global $Input23 = GUICtrlCreateInput("Input23", 225, 140, 90, 20)
$lbl21 = GUICtrlCreateLabel("Saisir c:\ d:\ ou vide ", 320, 76, 80, 30)
$lbl22 = GUICtrlCreateLabel("Saisir Le nom", 320, 112, 80, 30)
$lbl23 = GUICtrlCreateLabel("Saisir L'extension", 320, 135, 80, 30)
$Btn21 = GUICtrlCreateButton("Exécuter", 225, 180, 50, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, 0xB9D1EA)
$Btn22 = GUICtrlCreateButton("Rapports", 280, 180, 50, 25)
GUICtrlSetBkColor(-1, 0xB9D1EA)
; ########## Début de la création du Group3 LIster les extensions ##########
Global $Input31 = GUICtrlCreateInput("Input31", 30, 260, 90, 20)
Global $Input32 = GUICtrlCreateInput("Input32", 30, 290, 90, 20)
$lbl31 = GUICtrlCreateLabel("Saisir le chemin c:\ ou c:\users\ ", 125, 258, 80, 30)
$lbl32 = GUICtrlCreateLabel("Saisir l'extension ", 125, 292, 80, 30)
$Btn31 = GUICtrlCreateButton("Exécuter", 30, 340, 50, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, 0xB9D1EA)
$Btn31 = GUICtrlCreateButton("Rapports", 85, 340, 50, 25)
GUICtrlSetBkColor(-1, 0xB9D1EA)
; ########## Début de la création du Group4 Recherche Dossier ##########
Global $path41 = GUICtrlCreateInput("", 225, 260, 90, 20)
Global $path42 = GUICtrlCreateInput("Input42", 225, 290, 90, 20)
$lbl41 = GUICtrlCreateLabel("Saisir le chemin c:\ ou c:\users\ ", 320, 258, 80, 30)
$lbl42 = GUICtrlCreateLabel("Saisir le nom ", 320, 292, 80, 30)
$Btn41 = GUICtrlCreateButton("Exécuter", 225, 340, 50, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, 0xB9D1EA)
$Btn42 = GUICtrlCreateButton("Rapports", 280, 340, 50, 25)
GUICtrlSetBkColor(-1, 0xB9D1EA)
; ########## Début de la création du Group5 Drive ##########
;Global $Input51 = GUICtrlCreateInput("Input41", 225, 260, 90, 20)
; """""""""" Déclaration des variables """"""""""
$dirToolsearch = @HomeDrive & "\ToolSearch\"
$dirSpotLight = @HomeDrive & "\ToolSearch\SpotLight\"
$dirFichier = @HomeDrive & "\ToolSearch\Fichier\"
$dirExtension = @HomeDrive & "\ToolSearch\Extension\"
$dirDossier = @HomeDrive & "\ToolSearch\Dossier\"
$dirfolders = $dirToolsearch & $dirSpotLight & $dirFichier & $dirExtension & $dirDossier
$OS = RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName")
$SP = RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CSDVersion")
Global $answer, $sSearchDrives, $sLabel, $Recherche
Global $sDrive, $aDrive, $TmpDrives, $i, $j
$comptef = 0
$compted = 0
Local $aArray = DriveGetDrive("ALL")
Local $sLabel = DriveGetLabel(@HomeDrive & "\")
#cs; """""""""" Développement des fonctions
Func Entete()
FileWriteLine($LogFile,"ToolSearch by © Labougie")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"Outil lancé par: " & @UserName & " Depuis: [" & @ScriptDir & "] le: " & @MDAY &"-" & @MON &"-" & @YEAR &" à: " & @HOUR &":"& @MIN &":" & @SEC )
FileWriteLine($LogFile,"Système d'exploitation: " & $OS & " - " & $SP)
FileWriteLine($LogFile,"HardWare: " & " Cpu " & @CPUArch & " - " & " Système " & @OSArch)
EndFunc ;fin fonction entete logfile
Func Pied()
FileWriteLine($LogFile,"")
FileWriteLine($LogFile, "Terminé le: " & @MDAY &"-" & @MON &"-" & @YEAR &" à: " & @HOUR &":"& @MIN &":" & @SEC )
ShellExecute($LogFile)
EndFunc ; fin fonction pied de logfile
Func ErreurSaisieDossier()
If $path41 = "" Then ; Si l'utilisateur a annulé la saisie on ferme.
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"La recherche a été annulée pour mauvaise saisie.")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"=~=~=~=~=~=~=~=~ Nombre total pour la recherche ==> " & $path41 & " " & " 0 Dossiers(s) trouvé(s)=~=~=~=~=~=~=~=~")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile, "Terminé le: " & @MDAY &"-" & @MON &"-" & @YEAR &" à: " & @HOUR &":"& @MIN &":" & @SEC )
ShellExecute($LogFile)
exit
endif
If FileExists ($path41) = @error = 1 then ; Si l'utilisateur a saisi un mauvais chemin.
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"Le chemin " & $path41 & " n'existe pas.")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"=~=~=~=~=~=~=~=~ Nombre total pour la recherche ==> " & $path41 & " " & " 0 Dossier(s) trouvé(s)=~=~=~=~=~=~=~=~")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile, "Terminé le: " & @MDAY &"-" & @MON &"-" & @YEAR &" à: " & @HOUR &":"& @MIN &":" & @SEC )
ShellExecute($LogFile)
exit
EndIf
EndFunc ; erreur saisie
#ce
; """""""""" Contrôle des créations de dossiers """"""""""
If not FileExists ($dirfolders) then
DirCreate($dirToolsearch)
DirCreate($dirSpotLight)
DirCreate($dirFichier)
DirCreate($dirExtension)
DirCreate($dirDossier)
Else
Exit
EndIf
GUISetState(@SW_SHOW, $GUI1) ; On affiche la GUI1
While 1 ; Début de la boucle infinie
$nMsg = GUIGetMsg() ; Récupération des messages GUI
Switch $nMsg ; Début du sélecteur de cas
Case $GUI_EVENT_CLOSE ; Si clic fermeture fenêtre GUI1, on sort
MsgBox(64, 'Info', 'Vous avez choisi de quitter ToolSearch') ; Message
Exit ; Fin du script
Case $Btn01 ; si l'on clique sur "ToolSearch" le dossier parent s'ouvre
ShellExecute (@HomeDrive & "\ToolSearch\","open")
Case $Btn02 ; Si l'on clique sur "exit" on sort
$btn02 = $GUI_EVENT_CLOSE
MsgBox(64, 'Info', 'Vous avez choisi de quitter ToolSearch')
exit
Case $btn31 ; ################## traitement des fichiers ##################
Case $Btn41 ; ################## traitement des dossiers ##################
Local $LogFile = (@HomeDrive & "\ToolSearch\Dossier\Recherche Dossier.txt")
; """""""""" Contrôle de l'existance du Logfile """"""""""
;If FileExists ($LogFile) then Filedelete ($LogFile)
; """""""""" Contrôle de lecture du GUICtrlCreateInput """"""""""
$path = GUICtrlRead($path41)
;================================================= Mise en forme
FileWriteLine($LogFile,"ToolSearch by © Labougie")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"Outil lancé par: " & @UserName & " Depuis: [" & @ScriptDir & "] le: " & @MDAY &"-" & @MON &"-" & @YEAR &" à: " & @HOUR &":"& @MIN &":" & @SEC )
FileWriteLine($LogFile,"Système d'exploitation: " & $OS & " - " & $SP)
FileWriteLine($LogFile,"HardWare: " & " Cpu " & @CPUArch & " - " & " Système " & @OSArch)
;================================================= L'utilisateur ne rentre aucune donnée de recherche
If $path = "" Then ; Si l'utilisateur a annulé la saisie on ferme.
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"La recherche a été annulée pour mauvaise saisie.")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"=~=~=~=~=~=~=~=~ Nombre total pour la recherche ==> " & $path & " " & " 0 Dossiers(s) trouvé(s)=~=~=~=~=~=~=~=~")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile, "Terminé le: " & @MDAY &"-" & @MON &"-" & @YEAR &" à: " & @HOUR &":"& @MIN &":" & @SEC )
ShellExecute($LogFile)
exit
endif
If FileExists ($path) = @error = 1 then ; Si l'utilisateur a saisi un mauvais chemin.
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"Le chemin " & $path & " n'existe pas.")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"=~=~=~=~=~=~=~=~ Nombre total pour la recherche ==> " & $path & " " & " 0 Dossier(s) trouvé(s)=~=~=~=~=~=~=~=~")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile, "Terminé le: " & @MDAY &"-" & @MON &"-" & @YEAR &" à: " & @HOUR &":"& @MIN &":" & @SEC )
ShellExecute($LogFile)
exit
EndIf
SplashTextOn ("", "Scanning Folders... " & $path , 500, 55, -1, -1, 49)
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"=~=~=~=~=~=~=~=~=~=~=~=~ Recherche pour " & """ " & $path & " """ & " =~=~=~=~=~=~=~=~=~=~=~=~" &@crlf&@crlf)
$Recherche = _FileListToArrayEx ($path,'*',2,0) ; recherche les dossiers
;_ArrayDisplay($Recherche, "Liste dossier")
If IsArray($Recherche) Then
For $j = 1 to $Recherche[0] ; parcourt le tableau
$size = DirGetSize ($Recherche[$j],1) ; mise sous forme de tableau
FileWriteLine($LogFile, $Recherche[$j] & " S_D " & $size[2] & "/" & " F " & $size[1] & "/" & " (" & $size[0] & ")")
Next
EndIf
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"=~=~=~=~=~=~=~=~ Fin de la recherche ==> " & $recherche[0] & " dossiers(s) trouvé(s) " & " sur " & $path & " =~=~=~=~=~=~=~=~")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile,"")
FileWriteLine($LogFile, "Terminé le: " & @MDAY &"-" & @MON &"-" & @YEAR &" à: " & @HOUR &":"& @MIN &":" & @SEC )
SplashOff()
; Modification du chemin en supprimant les : et le \ du path
$path = StringTrimRight ($path,1)
$path = StringReplace($path,":", "")
$path = StringReplace($path,"\", "-")
FileMove (@HomeDrive & "\ToolSearch\Dossier\Recherche Dossier.txt",@HomeDrive & "\ToolSearch\Dossier\" & $path & ".txt")
$LogFile = (@HomeDrive & "\ToolSearch\Dossier\" & $path & ".txt")
; Nomérotation des fichiers si il est déja existant
local $run = 1
for $i = -1 to $run
if not FileExists (@HomeDrive & "\ToolSearch\Dossier\" & $path & "[" & $run & "]" & ".txt") Then
;$run = $run + 1
FileMove (@HomeDrive & "\ToolSearch\Dossier\" & $path & ".txt",@HomeDrive & "\ToolSearch\Dossier\" & $path & "[1]"& ".txt")
$logfile = (@HomeDrive & "\ToolSearch\Dossier\" & $path & "[" & $run & "]" & ".txt")
EndIf
if FileExists ($logfile) then
$run = $run +1
FileMove (@HomeDrive & "\ToolSearch\Dossier\" & $path & ".txt",@HomeDrive & "\ToolSearch\Dossier\" & $path & "[" & $run & "]" & ".txt")
$logfile = (@HomeDrive & "\ToolSearch\Dossier\" & $path & "[" & $run & "]" & ".txt")
EndIf
next
ShellExecute($LogFile)
Case $Btn42
ShellExecute (@HomeDrive & "\ToolSearch\Dossier","open")
EndSwitch ; Fin du sélecteur de cas
WEnd ; Fin de la boucle infinie