La puissance des desktop.ini
A quoi ça sert ?
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 :
Propriété du dossier
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.
Code : Console | ATTRIB +S AdresseDuDossier |
Par exemple, mon fichier se trouvant à l'adresse "C:\Aztek", je devrais taper :
Code : Console
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.
Citation : Wikipédia, article INI[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.
Code : Autre
InfoTip
InfoTip permet l'affichage d'un message dans l'infobulle quand on passe la souris sur le dossier (voir
exemple).
Code : Autre1
| 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%).
Code : Autre1
2
3
| IconFile=%SystemRoot%\system32\SHELL32.dll
IconFile=C:\WINDOWS\System32\shell32.dll |
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.
Code : Autre1
2
3
| IconFile=C:\WINDOWS\System32\shell32.dll
IconIndex=-259 |
Code : Autre1
2
3
| IconFile=monicone.ico
IconIndex=0 |
IconFileOld
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.
Code : Autre1
| 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.
Code : Autre
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.
Code : Autre1
| 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.
Code : Autre
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.
Code : Autre
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.
Code : Autre1
| 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").
Code : Autre1
| 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).
Code : Autre
WideLogo (versions antérieures à Windows XP)
Pareil que
Logo, mais ce paramètre définit la version large afin de l'afficher (fichier *.bmp).
Code : Autre
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.
Code : Autre1
| 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.
Code : Autre1
| BuyURL=http://www.windowsmedia.com/redir/xpsample.asp |
MusicBuyUrl
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.
Code : Autre1
| MusicBuyUrl=http://www.windowsmedia.com/Shop/Merchant.asp?reload=1&locale=40C&p_id=P+++643632&artist=The+Killers&a_id=R+++789351 |
number_aff_x (version antérieures à Windows XP)
Afin de définir le nombre d'icônes affichées de droite à gauche. Je ne vois pas à quelle unité ça correspond...
Code : Autre
number_aff_y (version antérieures à Windows XP)
Afin de définir le nombre d'icônes affichées de haut en bas.
Code : Autre
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...
Code : Autre
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...
Code : Autre
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é.
Code : Autre
DefaultToFS
L'utilisation de ce paramètre est assez floue. Il servirait de permettre à Windows de verrouiller le dossier...
Code : Autre
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.
Code : Autre
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.
Code : Autre
[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").
Code : Autre
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.
Code : Autre
PersonalizedName
C'est le nom personnalisé du dossier (voir la liste des valeurs du paramètre
FolderType à la classe
.ShellInfo).
Code : Autre1
| 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).
Code : Autre1
| 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.
Code : Autre1
| {BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC} |
{8BEBB290-52D0-11d0-B7F4-00C04FD706EC}
Permet l'utilisation de la classe de même nom. Elle sert à configurer l'affichage des miniatures des images du même dossier.
Code : Autre1
| {8BEBB290-52D0-11d0-B7F4-00C04FD706EC}={8BEBB290-52D0-11d0-B7F4-00C04FD706EC} |
{5984FFE0-28D4-11CF-AE66-08002B2E1262}
Permet l'utilisation de la classe de même nom. Elle sert à afficher un dossier comme une page Web (à l'aide d'un fichier *.htt).
Code : Autre1
| {5984FFE0-28D4-11CF-AE66-08002B2E1262}={5984FFE0-28D4-11CF-AE66-08002B2E1262} |
[{BE098140-A513-11D0-A3A4-00C04FD706EC}]
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

.
Code : Autre
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.
Code : Autre
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.
Code : Autre1
| 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.
Code : Autre1
| 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).
Code : Autre1
| WebViewTemplate.NT5=ImgView.htt |
PersistMonikerPreview
Désigne un fichier *.htt à utiliser pour définir la structure du document.
Code : Autre1
| 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 
.
Code : Autre1
2
3
4
5
6
7
8
9
10
11
| [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é.
Code : Autre