Fil d'Ariane
Mis à jour le mercredi 30 octobre 2013
  • Facile
Connectez-vous ou inscrivez-vous pour bénéficier de toutes les fonctionnalités de ce cours !

Introduction du cours

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 !

Le fichier desktop.ini

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 :

Image utilisateurImage utilisateurImage utilisateurImage utilisateurImage utilisateur

Un dossier système !

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.

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.

Image utilisateur

Listing des sections et de leurs différents paramètres

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.

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%).

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.

IconFile=C:\WINDOWS\System32\shell32.dll

IconIndex=-259
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.

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.

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.

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... :(

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.

{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.

{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).

{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 :) .

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é.

Disable=1

Applications pratiques

Voici quelques exemples avec leurs fichiers desktop.ini :

Exemple n°1

Image utilisateur

;desktop.ini :
[.ShellClassInfo]
InfoTip=Salut à toi, visiteur du sdz !
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=48

Exemple n°2

Image utilisateur

;desktop.ini :
[.ShellClassInfo]
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=-240
[ExtShellFolderViews]
{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}
[{BE098140-A513-11D0-A3A4-00C04FD706EC}]
Attributes=1
IconArea_Image=fond.png
IconArea_Text=0x000000FF

Liste de logiciels utilisant les desktop.ini

Image utilisateur

[fr] Se débarrasser des fichiers desktop.ini
[fr] Fiche du logiciel IconFolder
[fr] Fiche du logiciel iColorFolder
[fr] Fiche du logiciel Change Icon
[fr] Fiche du logiciel FolderWizard
[fr] Fiche du programme IEShWiz.exe
[en] Fiche du logiciel Backgrounder
[en] Fiche du logiciel Lovely Folders
[en] Fiche du logiciel Windowspaper XP

Exemples

[fr] Modifier le fond d'un dossier
[fr] Modifier le fond d'un dossier (2)
[fr] Affichage d'icône personnalisée pour clé USB
[fr] Merci à ce site pour m'avoir aidé
[fr] Comprendre l'utilisation des desktop.ini avec une vidéo
[fr] Problème de bureau qui s'affiche comme un dossier
[fr] Résolution d'un problème au démarrage de Windows concernant un desktop.ini
[fr] Laisser Windows créer le fichier à sa place, le tout en détail
[en] Utilisation des Folder.htt sur le MSDN officiel (1/3)
[en] Utilisation des Folder.htt sur le MSDN officiel (2/3)
[en] Utilisation des Folder.htt sur le MSDN officiel (3/3)

Listes de CLSID, etc. portant sur les desktop.ini

[en] Diverses informations concernant les desktop.ini contenus dans les dossiers par défaut
[en] Une autre liste des desktop.ini originaux pour vos "sauvegardes"
[en] http://mailerdaemon.home.comcast.net/r [...] d/desktop.txt

Message de fin

Vous êtes désormais fin prêts à donner du style à vos dossiers selon vos envies et grâce aux desktop.ini :) .

J'espère que ce tutorial vous a plu et qu'il vous sera utile, à bientôt !

Exemple de certificat de réussite
Exemple de certificat de réussite