Code : Tout sélectionner
#include <GuiConstantsEx.au3>;Inclu le fichier servant à gérer les constantes GUI.
$File = "";Déclaration de la variable $File (vide).
If UBound($CmdLine) > 1 Then;Si le script a été lancé avec des paramètres alors...
$File = $CmdLine[1];...ils sont récupérés dans la variable $File.
EndIf
If Not $File Then;Sinon...
$File = FileOpenDialog("Choisissez un fichier :",@UserProfileDir,"Tous les fichiers (*.*)");...L'utilisateur les choisis.
If @error Then Exit;Quitte le script si l'utilisateur appuie sur "Annuler" ou sur fermer.
EndIf
If Not FileExists($File) Then;Si le fichier n'existe pas alors...
MsgBox(16,"Erreur","Le fichier demandé n'existe pas !");...on affiche un message d'erreur...
Exit;...et on quitte le script.
EndIf
$FileName = StringSplit($File,"\");Récupère le nom du fichier
$FileName = $FileName[UBound($FileName)-1]; sans son chemin d'accès.
GUICreate('Informations sur le fichier "'&$FileName&'"',500,500);Crée la GUI.
GUISetBkColor(0xF0F0F0);On choisis la couleur de fond de la GUI.
$Edit = GUICtrlCreateEdit("",10,10,480,480,3);On crée un Edit...
GUICtrlSetBkColor($Edit,0xF0F0F0);...et on choisis sa couleur.
GUISetState(@SW_SHOW); TRES IMPORTANT : On affiche la GUI.
Dim $Info[12] = ["Comments", "LegalCopyright", "CompanyName", "FileDescription", "FileVersion", "ProductVersion", "InternalName", "BuildID", "CompiledScript"];Déclaration de la variable contenant les informations à récuperer.
Dim $Name[12] = ["Commentaires", "Copyright", "Compagnie", "Description", "Version du fichier", "Version du produit", "Nom interne", "BuildID ", "Script Compilé"];Déclaration le la variable contenant le nom des informations.
For $i = 0 To 11 Step 1;On lance une boucle...
$FileInfo = FileGetVersion($File,$Info[$i]);...dans laquelle on recherche des information...
If $FileInfo Then;...et si elles sont trouvées alors...
GUICtrlSetData($Edit,GUICtrlRead($Edit)&$Name[$i]&" : "&$FileInfo&@CRLF);...on les affiches.
EndIf
Next
Dim $TimeName[3] = ["Modifié", "Créé", "Accédé"];Déclaration le la variable contenant le nom des informations.
For $i = 0 To 2 Step 1;On lance une boucle...
$FileTime = FileGetTime($File,$i);...dans laquelle on recherche des information...
If UBound($FileTime) Then;...et si elles sont trouvées alors...
GUICtrlSetData($Edit,GUICtrlRead($Edit)&$TimeName[$i]&" le "&$FileTime[2]&"/"&$FileTime[1]&"/"&$FileTime[0]&" à "&$FileTime[3]&" heures, "&$FileTime[4]&" minutes et "&$FileTime[5]&" secondes."&@CRLF);...on les affiches.
EndIf
Next
Dim $Attrib[9] = ["R", "A", "S", "H", "N", "D", "O", "C", "T"];Déclaration de la variable contenant les informations à récuperer.
Dim $AttribName[9] = [" peut seulement être lu", ", est une archive", ", est un fichier système", ", est caché", ", est normal", ", est un répertoire", ", est hors-ligne", ", est compressé ( en NTFS, pas en zip)", ", est temporaire"];Déclaration le la variable contenant le nom des informations.
$FileAttrib = FileGetAttrib($File);On récupère ces informations...
If $FileAttrib Then;...et si il y en alors...
For $i = 0 To 8 Step 1;...on crée une boucle...
$FileAttrib = StringReplace($FileAttrib,$Attrib[$i],$AttribName[$i],0,1);...dans laquelle on remplace les informations par leur nom.
Next
GUICtrlSetData($Edit,GUICtrlRead($Edit)&"Ce fichier"&$FileAttrib&"."&@CRLF);Puis on les affiches.
EndIf
$FileSize = FileGetSize($File);On récupère ces informations...
If $FileSize Then;...et si il y en alors...
GUICtrlSetData($Edit,GUICtrlRead($Edit)&"Ce fichier fait "&Floor($FileSize/1000)&" Ko."&@CRLF);...on les affiches.
EndIf
If GUICtrlRead($Edit) = "" Then;Si aucune information n'a été trouvés alors...
GUICtrlSetData($Edit,"Désolé, aucune information n'est disponible pour ce fichier !");...on écrit un message.
EndIf
$Data = GUICtrlRead($Edit);On sauvegarde le contenu de la GUI.
While 1;On démarre une boucle.
If GUIGetMsg() = $GUI_EVENT_CLOSE Then;Si l'utilisateur ferme la GUI alors...
Exit;On quitte le script.
EndIf
If GUICtrlRead($Edit) <> $Data Then;Si l'utilisateur modifie le contenu de l'Edit alors...
GUICtrlSetData($Edit,$Data);...on réécris l'original en fonction de la variable $Data.
EndIf
WEnd