Aller au menu - Aller au contenu

Personnaliser ses dossiers avec les desktop.ini !


Informations sur le tutoriel

Avatar
Auteur : Aztek
Visualisations : 31 771


Plus d'informations Plus d'informations
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 !
Merci de me faire part de vos connaissances concernant les desktop.ini en postant un commentaire ou en m'envoyant un MP, car je n'ai pu faire mes essais que sur Windows XP, et certaines choses ne fonctionnent que sur les versions antérieures...


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 utilisateur Image utilisateur Image utilisateur Image utilisateur Image 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.

Code : Console
ATTRIB +S AdresseDuDossier


Par exemple, mon fichier se trouvant à l'adresse "C:\Aztek", je devrais taper :

Code : Console
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.
Code : Autre
1
ConfirmFileOp=0


InfoTip


InfoTip permet l'affichage d'un message dans l'infobulle quand on passe la souris sur le dossier (voir exemple).
Code : Autre
1
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 : Autre
1
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 : Autre
1
2
3
IconFile=C:\WINDOWS\System32\shell32.dll

IconIndex=-259

Code : Autre
1
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 : Autre
1
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
1
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.
Code : Autre
1
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
1
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.
Code : Autre
1
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.
Code : Autre
1
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 : Autre
1
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
1
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).
Code : Autre
1
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.
Code : Autre
1
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 : Autre
1
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 : Autre
1
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
1
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.
Code : Autre
1
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...
Code : Autre
1
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...
Code : Autre
1
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é.
Code : Autre
1
RunWizard=1


DefaultToFS


L'utilisation de ce paramètre est assez floue. Il servirait de permettre à Windows de verrouiller le dossier...
Code : Autre
1
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.
Code : Autre
1
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.
Code : Autre
1
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").
Code : Autre
1
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.
Code : Autre
1
Personnalized=5


PersonalizedName


C'est le nom personnalisé du dossier (voir la liste des valeurs du paramètre FolderType à la classe .ShellInfo).
Code : Autre
1
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 : Autre
1
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 : Autre
1
{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 : Autre
1
{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 : Autre
1
{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
1
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.
Code : Autre
1
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.
Code : Autre
1
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 : Autre
1
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 : Autre
1
WebViewTemplate.NT5=ImgView.htt


PersistMonikerPreview


Désigne un fichier *.htt à utiliser pour définir la structure du document.
Code : Autre
1
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 : Autre
1
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
1
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

Informations sur le tutoriel

Retour en haut Retour en haut

Créé : Le 26/03/2007 à 19:12:15
Modifié : Le 22/08/2008 à 16:08:14
Avancement : 100%
Licence : Copie non autorisée

15 commentaires