Vous utilisez Windows depuis déjà un petit bout de temps ? Vous avez souvent remarqué l'existence de dossiers spéciaux comme Mes documents ou encore Mes Vidéos, Favoris réseau sans pour autant comprendre comment ils se sont démarqués des autres dossiers ordinaires ? Je vais enfin lever le voile sur cette affaire :D !
Afin de personnaliser certains dossiers, Windows permet l'utilisation de fichiers qui sont en quelque sorte des "plans de construction". Ces fichiers qui stylisent les dossiers de Windows s'appellent tous desktop.ini (cela signifie "bureau" en anglais).
Cependant ce n'est pas tout : pour que ça fonctionne, il faut que le dossier concerné soit considéré comme "dossier système". Ainsi explorer.exe (le programme qui permet l'affichage graphique de Windows), depuis au moins Windows 95, vérifie qu'il existe un fichier desktop.ini et appelle la bibliothèque shell32.dll afin d'analyser ce fichier et d'agir en conséquence.
Les informations à l'intérieur du dossier permettront, entre autres, de lui attribuer une icône, de lui donner une image de fond, un texte descriptif, etc. Ces informations, comme l'indique l'extension INI, sont organisées à la façon des fichiers INI habituels.
Exemples
Afin de vous prouver ce que j'avance, voici quelques exemples :
Comme je l'ai expliqué plus haut, il faut que le dossier auquel on veut assigner un fichier desktop.ini soit un dossier système. Il existe pour cela plusieurs façons de procéder :
on peut utiliser un logiciel spécial qui attribuera la valeur "système" au dossier ;
on peut aussi laisser Windows le placer en dossier système et créer le fichier par la même occasion ;
il est aussi possible d'appeler la commande MS-DOS "ATTRIB" à l'aide de l'invite de commandes.
Les différents moyens
On utilise un logiciel spécialisé...
Au lieu de se fatiguer à faire travailler Windows ou d'utiliser la commande de MS-DOS, on peut utiliser un logiciel qui modifie les attributs des dossiers et des fichiers. Je pense vous avoir choisi celui qui correspond le mieux à nos besoins, et qui en plus est en français : télécharger le logiciel Attribute Changer [fr].
Installez-le, et c'est fini : vous n'avez plus qu'à faire un clic droit sur votre dossier à traiter, cliquer sur "changer les attributs", cocher "système" et valider : je vous avais prévenu, c'était facile :) .
On laisse Windows faire le sale boulot...
Pour que Windows se charge de tout faire, on va lui demander de changer l'icône du dossier lui-même. Ainsi, il sera obligé de placer le dossier à la valeur "système" et créera le fichier desktop.ini automatiquement avec les informations concernant l'icône. Vous pourrez ensuite modifier le fichier selon vos besoins.
Il faut donc faire un clic droit sur le dossier, puis cliquer sur "Propriétés", "Personnaliser" et "Changer d'icône". Le fichier desktop.ini sera ainsi créé et considéré comme un fichier caché.
Pour y accéder (c'est difficile étant donné qu'il est devenu un fichier caché), accédez à la barre d'adresses (pour l'activer : "Affichage" -> "Barres d'outils" -> "Barre d'adresses" ), et tapez-y à la suite de l'adresse du dossier : "\desktop.ini". Le Bloc-notes s'ouvrira alors avec le contenu du fichier. Vous n'avez plus qu'à le modifier.
Ou bien, on utilise la commande MS-DOS !
Cette façon de procéder concerne plutôt les personnes qui raffolent des commandes MS-DOS ^^ . Pour donner la valeur "système" à un dossier, il faut procéder comme ceci :
Il faut soit lancer l'invite de commandes ("Démarrer" -> "Programmes" -> "Invite de commandes"), soit cliquer sur "Exécuter..." (situé dans le menu "Démarrer"). Ensuite, il faut taper la commande ATTRIB suivie de paramètres placés dans un certain d'ordre.
ATTRIB +S AdresseDuDossier
Par exemple, mon fichier se trouvant à l'adresse "C:\Aztek", je devrais taper :
ATTRIB +S C:\Aztek
Ce qui permettra d'ATTRIBuer la valeur S (pour "Système") au dossier "Aztek".
Pour retirer cette valeur, il suffit de remplacer le signe + par le signe -. Il existe aussi d'autres valeurs pour les dossiers ou fichiers. Par exemple +H qui permet de rendre le dossier "caché", etc.
[section1] ; Ceci est un commentaire dans une section vide [section2] ; Cette section définit la valeur de var1 et var2 var1 = abc var2 = 123
Sections : les sections commencent par '[' et se terminent par ']' comme dans l'exemple ci-dessus ;
paramètres : le paramètre "var1 = abc" ci-dessus est un exemple de paramètre (aussi connu sous le nom de "clé"). Les paramètres commencent par une clé ('var1') suivie du signe égal ('='), et ils se terminent par une valeur ('abc') ;
commentaires : toutes les lignes commençant par un ';' sont considérées comme étant des commentaires, et sont ignorées.
Les fichiers desktop.ini sont des fichiers INI, comme je vous l'avais précisé dans l'introduction de ce tutorial, et sont par conséquent constitués de paramètres situés dans différentes sections. Je vais ici tenter de vous lister les paramètres et sections et de vous donner leurs fonctions.
[.ShellClassInfo]
C'est la classe qui, dans ce tuto, est la plus passionnante, elle permet de modifier l'icône du dossier, d'afficher un message en infobulle, de confirmer une opération concernant le dossier, etc.
ConfirmFileOp
ConfirmFileOp permet d'afficher un message d'avertissement concernant les opérations sur le dossier (suppression, changement de nom, déplacement). La valeur 1 l'active et 0 la désactive.
ConfirmFileOp=0
InfoTip
InfoTip permet l'affichage d'un message dans l'infobulle quand on passe la souris sur le dossier (voir exemple).
InfoTip=DescriptionPersonnalisée
IconFile
IconFile permet l'utilisation d'une ressource (*.ico, *.bmp, *.exe, *.dll, ou *.icl) afin de définir une icône au dossier. Le chemin vers la ressource peut utiliser les variables système (qui sont entre deux caractères de pourcentage ; exemple : %SystemRoot%).
Dans les desktop.ini, les chemins pointant vers les icônes, fonds, ressources, etc. ne sont pas sensibles à la casse (majuscule/minuscule).
IconIndex
IconIndex définit l'adresse de l'icône dans la ressource précédemment définie par IconFile. Si c'est un fichier ne comportant qu'une ressource (*.ico, etc.) la valeur devra être 0, sinon elle devra être celle de l'index de l'icône située dans la "bibliothèque" de ressources.
IconFileOld définit la ressource de l'icône quand un certain mode graphique est activé. C'est pour définir une version un peu plus "pixélisée" de l'icône.
IconFileOld=%SystemRoot%\system32\SHELL32.dll
IconIndexOld
IconFileIndexOld définit aussi l'index de la version "pixélisée" de l'icône dans la ressource.
IconFileIndexOld=101
CLSID
Cet attribut permet l'existence des dossiers comme Downloaded Program Files, Offline Web Pages, Tasks, situés dans le répertoire de Windows. Bref, c'est du préprogrammé "spécial". Il existe aussi les paramètres CLSID2 et ULCLSID. Cliquez ici pour obtenir la liste des CLSID possibles et imaginables.
CLSID={21EC2020-3AEA-1069-A2DD-08002B30309D}
NoSharing (versions antérieures à Windows XP)
Ce paramètre, s'il vaut 1, permet de ne pas partager ce dossier avec les autres utilisateurs de l'ordinateur.
NoSharing=1
Sharing
C'est le paramètre remplaçant le paramètre NoSharing des versions antérieures à Windows XP. Il s'utilise à l'inverse de l'autre version ^^ , tout simplement.
Sharing=0
HTMLInfoTipFile (versions antérieures à Windows XP)
Définit un fichier *.htt décrivant le dossier. C'est en quelque sorte l'adresse d'un fichier InfoTip externe pouvant cette fois contenir du HTML.
HTMLInfoTipFile=file://Comment.htt
URL (versions antérieures à Windows XP)
URL définit une adresse Web pouvant être affichée lors de l'ouverture du dossier si celui-ci est ouvert en tant que page Web ("Affichage" -> "Afficher comme une page Web").
URL=http://www.siteduzero.com
Logo (versions antérieures à Windows XP)
Logo définit l'adresse du logo qui sera affiché quand on affichera le dossier en tant que page Web (fichier *.bmp).
Logo=logo.bmp
WideLogo (versions antérieures à Windows XP)
Pareil que Logo, mais ce paramètre définit la version large afin de l'afficher (fichier *.bmp).
WideLogo=logo_grand.bmp
LocalizedResourceName
Ce paramètre ressemble grandement aux CLSID, mais au lieu de chercher dans le registre, on va chercher les informations préprogrammées dans une ressource.
LocalizedResourceName=@shell32.dll,-21765
BuyURL
Permet de définir l'adresse internet quand on clique sur "Acheter de la musique sur Internet" dans le dossier Échantillons de musique.
Permet de définir l'adresse internet quand on clique sur "Acheter de la musique sur Internet" dans le dossier d'un des albums présents si, dans la même section, le paramètre FolderType est défini sur MusicAlbum.
Afin de définir le nombre d'icônes affichées de droite à gauche. Je ne vois pas à quelle unité ça correspond... :(
number_aff_x=29
number_aff_y (version antérieures à Windows XP)
Afin de définir le nombre d'icônes affichées de haut en bas.
number_aff_y=58
aff_size (version antérieures à Windows XP)
aff_size permet de déterminer la taille des caractères de l'affichage des fichiers du dossier. Chez moi, ça ne marche pas...
aff_size=30
aff_font (version antérieures à Windows XP)
aff_font, lui, permet de changer la police de caractères de l'affichage des fichiers du dossier. Chez moi ça ne marche pas...
aff_font=Arial
RunWizard
RunWizard=1 est utilisé pour permettre l'affichage d'une boite d'information à la première ouverture d'un dossier de type porte-documents. Ce paramètre est ensuite automatiquement supprimé.
RunWizard=1
DefaultToFS
L'utilisation de ce paramètre est assez floue. Il servirait de permettre à Windows de verrouiller le dossier...
DefaultToFS=0
FolderType
Ce paramètre, lui, permet d'afficher le dossier avec un style prédéfini par le système. Les valeurs possibles sont : Documents, MyDocuments, Pictures, MyPictures, Music, MyMusic, PhotoAlbum, MusicAlbum, MusicArtist, Videos, MyVideos, VideoAlbum, UseLegacyHTT, CommonDocuments.
FolderType=Pictures
DefaultDropEffect
Ceci est aussi intéressant : il existe trois valeurs possibles déterminant ce qui se passe quand on glisse le dossier vers une autre destination (un Drag'n Drop) :
1 si le dossier doit être copié ;
2 si le dossier doit être déplacé (par défaut) ;
3 s'il faut en créer un raccourci.
DefaultDropEffect=3
[DeleteOnCopy]
DeleteOnCopy est une classe qui se supprime du fichier desktop.ini lors de la copie du dossier (par exemple, Mes documents).
Owner
Owner définit le "propriétaire" du dossier. Si la valeur est différente du nom de l'utilisateur actuel, le nom du titre devrait changer avec le nom personnalisé (exemple : "Documents de Lise").
Owner=Pierre
Personnalized
C'est un chiffre d'index système permettant de définir une fonction préprogrammée au dossier. Il va de pair avec PersonalizedName.
Personnalized=5
PersonalizedName
C'est le nom personnalisé du dossier (voir la liste des valeurs du paramètre FolderType à la classe .ShellInfo).
PersonnalizedName=My Documents
[ExtShellFolderViews]
Cette classe permet de définir la façon dont le dossier doit être affiché. Elle permet par la même occasion l'utilisation d'autres classes ayant des paramètres spéciaux suivant l'affichage choisi ici :
Default
Afin de définir l'affichage par défaut du dossier quand on a la possibilité de changer l'affichage, puis que l'on veut rétablir l'affichage par défaut (par exemple, lors d'une mauvaise manipulation).
Default={BE098140-A513-11D0-A3A4-00C04FD706EC}
{BE098140-A513-11D0-A3A4-00C04FD706EC}
Permet l'utilisation de la classe de même nom. Elle sert à permettre la modification du fond du dossier, de la police de caractères, de la taille etc. C'est le style par défaut des dossiers de Windows.
Cette classe permet de styliser les dossiers avec un fond, une certaine couleur du texte, ...
Attributes=1
Mieux vaut ajouter ce paramètre : il est souvent présent, mais son utilisation est assez mystérieuse.
IconArea_Image
Ceci permet de donner un fond au dossier :) .
IconArea_Image=fond.jpg
IconArea_Text
Cette clé permet la modification de la couleur du texte des icônes. La valeur doit avoir une forme spéciale : 0x00FFFFFF, ne changez pas 0x00, mais remplacez la suite par un code hexadécimal de votre choix.
IconArea_Text=0x00FFFF00
IconArea_TextBackground
Ceci permettra de modifier la couleur du fond du texte de la même manière que la couleur du texte. Ne marche pas quand un fond est défini pour le dossier.
IconArea_TextBackground=0x00000000
[{8BEBB290-52D0-11d0-B7F4-00C04FD706EC}]
C'est une classe assez mystérieuse, je ne comprends pas vraiment son fonctionnement. Elle servirait à la vue "miniature" des dossiers sur Windows 95 et 98 seulement.
MenuName
Inconnu ?
ToolTipText
Inconnu ?
HelpText
Définit le texte d'aide dans la barre de statut.
Attributes
Inconnu ?
[{5984FFE0-28D4-11CF-AE66-08002B2E1262}]
Cette classe permet l'utilisation d'un fichier *.htt mais recquiert la déclaration préalable du paramètre FolderType de la classe [.ShellClassInfo] en tant que LegacyWebView. Personnellement, chez moi ça ne marche pas, car je n'ai pas de Folder.htt.
PersistMoniker
Ce paramètre s'utilise à l'aide du protocole file:// et sert à définir le fichier *.htt du squelette HTML du dossier.
PersistMoniker=file://template.htt
WebViewTemplate.NT5
Désigne le fichier *.htt à utiliser pour définir la structure du document. Ce paramètre est utilisé par les version NT 5 (Windows XP).
WebViewTemplate.NT5=ImgView.htt
PersistMonikerPreview
Désigne un fichier *.htt à utiliser pour définir la structure du document.
PersistMonikerPreview=\Web\imgview.htt
[LocalizedFileNames]
Les paramètres de LocalizedFileNames ont un lien avec les raccourcis du menu "Démarrer" et permettent de définir les informations sur les programmes concernés (une sorte de LocalizedResourceName). Allez faire un tour dans C:\Documents and Settings\VotreNomUtilisateur\Menu Démarrer\Programmes\desktop.ini ;) .
[LocalizedFileNames]
Windows-catalogus.lnk=@%SystemRoot%\system32\shell32.dll,-22075
Lecteur Windows Media.lnk=@C:\WINDOWS\inf\unregmp2.exe,-4
Assistance à distance.lnk=@%systemroot%\system32\rcbdyctl.dll,-152
Internet Explorer.lnk=@xpsp1res.dll,-11001
Outlook Express.lnk=@xpsp1res.dll,-11004
[Encryption] (Windows NT4 et plus sauf XP familial)
Disable
Si la valeur est égale à 1, le chiffrement EFS du dossier sera désactivé.