cela - Free

Transcription

cela - Free
Personnaliser les icônes
“Périphériques et Imprimantes” dans Windows 7
Vous l’aurez surement remarqué Windows 7 propose des icônes haute-résolution dans la fenêtre
« Périphériques et Imprimantes » et certains d’entre eux sont mis à jour automatiquement avec
des icônes fournis par les fabricants de matériel.
C’est souvent le cas pour les périphériques récents et qui disposent d’un bon suivi. Mais pour les
périphériques un peu moins courants ou tout simplement si l’éditeur a eu la flemme on se
retrouve avec les icones par défauts. On peut pas dire que ce soit le pied.
Le but c’est de personnaliser les icones et la description des périphériques en fonction de chaque
périphérique. Il faut donc trouver une méthode qui puisse lier ces information à l’identifiant
matériel du périphérique.
Windows 7 (et Vista aussi probablement) utilisent des fichiers de métadonnées qui permettent
de spécifier le fabricant, le modèle, le nom et l’icône des périphériques. Ce sont ces informations
qui seront affichées dans la fenêtre « Périphériques et Imprimantes ».
La bonne nouvelle c’est que ces fichiers de métadonnées sont en XML, du coup nous avons
uniquement besoin d’un éditeur de texte (comme le bloc-notes) pour les modifier. La mauvaise
c’est que la procédure ne s’arrête pas là, qu’elle est assez longue et relativement fastidieuse. Il
faudra également générer des fichiers CAB pour contenir nos fichiers personnalisés. Donc il nous
faut aussi un programme spécifique pour les générer.
Programmes nécessaires pour ce tutoriel
•
•
•
Windows 7
Bloc-notes
un Editeur d’Icône : Axialis IconWorkshop ou Paint.NET + ICO/CUR plugin
•
le package outils et exemples de ce tutoriel
Informations à préparer
Avant de commencer il faut préparer quelques informations qui nous seront utiles plus tard.
Mettez-les de côté dans un fichier texte ou un tableau Excel, elles resserviront dans la procédure.
1. le Numéro d’identification du matériel :
Il s’agit d’identifiants propre à chaque périphérique matériel. Pour les afficher :
•
•
•
•
aller dans la fenêtre Périphérique et Imprimante
clic-droit sur le périphérique, choisir propriétés
aller dans l’onglet matériel, puis cliquez sur le bouton propriétés
aller dans l’onglet détails, choisir la propriété Numéros d’identification du matériel
Les numéros d’identification sont rangé par ordre de précision, du plus précis au plus général.
Le numéro qui nous intéresse est le premier et dans certains cas le second. Ce sont eux qui
identifient de manière précise le périphérique connecté à l’ordinateur.
Par exemple voici les numéros d’identification de mon clavier :
•
•
•
•
•
HID\VID_046D&PID_C318&REV_5501&MI_00
HID\VID_046D&PID_C318&MI_00
HID_DEVICE_SYSTEM_KEYBOARD
HID_DEVICE_UP:0001_U:0006
HID_DEVICE
Le premier me donne la révision précise du matériel, le second est un identifiant plus général
qui ne tiens pas compte de la révision. Après ce sont des numéros qui servent d’identifiant
par défaut, ils ne nous sont pas utiles.
Autre exemples de numéros d’identification :
• un écran > MONITOR\SAM05CC
• un shuttle > USB\VID_0B33&PID_0030&REV_0117
• un téléphone > USBSTOR\DiskHTC_____Android_Phone___0100
2. Identifier la catégorie du périphérique :
Microsoft a mis en ligne un document qui précise l’ensemble des fonctionnalités
proposées par leur système de métadonnées (voir leur document). Vous trouverez la liste
des catégories disponibles dans les annexes (appendix en anglais).
Voici quelques exemples concrets :
•
•
•
•
pour une souris > catégorie Input.Mouse
pour un écran LCD > catégorie Display.Monitor.LCD
pour un écran TV Plasma > catégorie Display.TV.Plasma
un lecteur de cartes tout en un > catégorie Storage.CardReader
N’hésitez pas à parcourir la liste fournie par Microsoft, elle est très complète. Une bonne
identification de votre matériel permettra à Windows de proposer les tâches par défaut propre à
chaque type de périphérique.
3. Et pour l’icône de l’ordinateur ?
Si vous voulez modifier les informations pour l’ordinateur vous aurez besoin d’un programme
supplémentaire de Microsoft. L’exécutable est distribué gratuitement dans le Windows Driver Kit
et se nomme ComputerHardwareIds.exe. Pensez à choisir la bonne version (32 bits, amd64 ou
ia64 bits).
Si vous lancez ce programme dans l’invite de commande cela affichera les identifiants matériel de
l’ordinateur. Recopiez le GUID indiqué par « Manufacturer + ProductName » et utilisez-le comme
paramètre de <HardwareID> dans PackageInfo.xml.
<HardwareID>DOID:ComputerMetadata\{818c5196-34d5-5867-aa79-66c90e03c71b}</HardwareID>
Générer un package devicemetadata-ms
C’est une procédure assez simple mais un peu longue. Il faut rester bien concentré et de
préférence avoir une bonne connaissance de l’informatique (ça peut toujours servir pour pas
avoir l’impression de lire un tutoriel en chinois).
1. préparer une structure des métadonnées :
Pour plus de facilité vous pouvez télécharger cet exemple et le décompresser. Il s’agit d’un
package que j’ai réalisé pour l’écran Samsung SyncMaster P2450H.
Le répertoire « myDevice » contient la structure des métadonnées et les fichiers XML qui
correspondent :
•
•
•
le fichier PackageInfo.xml qui décrit le contenu du package.
Le répertoire DeviceInformation qui contient les infos propre au périphérique

DeviceInfo.xml qui décrit les infos propres au périphérique

un fichier ICO qui représente le périphérique
le répertoire WindowsInformation qui contient les infos pour Windows

WindowsInfo.xml qui décrit les actions par défaut pour ce périphérique
Vous pouvez renommer le répertoire myDevice pour plus de clarté mais ce n’est pas obligatoire.
L’essentiel des modifications se passent dans les fichiers XML.
2. modifier les fichiers XML
Maintenant que nous avons la structure il faut modifier les informations contenues dans les
fichiers XML. Il y a trois fichiers mais seulement deux nous seront utiles : PackageInfo.xml et
DeviceInfo.xml. Le fichier WindowsInfo.xml est standard donc pas la peine de le modifier.
2.1 modifier PackageInfo.xml
Voici le fichier PackageInfo.xml, c’est ici que nous allons indiquer les numéros d’identification que
nous avons récupéré auparavant. Il peut y avoir plusieurs HardwareID pour un même package.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<PackageInfo xmlns="http://schemas.microsoft.com/windows/DeviceMetadata/PackageInfo/2007/11/">
<MetadataKey>
<HardwareIDList>
<HardwareID>DOID:MONITOR\SAM05CC</HardwareID>
</HardwareIDList>
<Locale default="false">fr-FR</Locale>
<LastModifiedDate>2011-01-01T00:00:00Z</LastModifiedDate>
</MetadataKey>
<PackageStructure>
<Metadata MetadataID="http://schemas.microsoft.com/windows/DeviceMetadata/PackageInfo/2007/11/">PackageInfo.xml</Metadata>
<Metadata MetadataID="http://schemas.microsoft.com/windows/DeviceMetadata/DeviceInfo/2007/11/">DeviceInformation</Metadata>
<Metadata MetadataID="http://schemas.microsoft.com/windows/DeviceMetadata/WindowsInfo/2007/11/">WindowsInformation</Metadata>
</PackageStructure>
</PackageInfo>
Vous remarquerez que le numéro d’identification doit commencer par DOID: il faut aussi
remplacer l’esperluette (&) par le code XHTML &amp; voici quelques exemples :
• <HardwareID>DOID: MONITOR\SAM05CC</HardwareID>
• <HardwareID>DOID:USB\VID_0B33&amp;PID_0030&amp;REV_0117</HardwareID>
• <HardwareID>DOID: USBSTOR\DiskHTC_____Android_Phone___0100</HardwareID>
2.2 modifier DeviceInfo.xml
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<DeviceInfo xmlns="http://schemas.microsoft.com/windows/DeviceMetadata/DeviceInfo/2007/11/">
<DeviceCategoryList>
<DeviceCategory>Display.Monitor.LCD</DeviceCategory>
</DeviceCategoryList>
<ModelName>SyncMaster P2450H</ModelName>
<DeviceDescription1>Ecran LCD 24"</DeviceDescription1>
<Manufacturer>Samsung</Manufacturer>
<DeviceIconFile>P2450H.ico</DeviceIconFile>
</DeviceInfo>
C’est ici que nous allons décrire notre périphérique. En premier lieu il convient de préciser la
catégorie de celui-ci (une info que vous devez avoir mis de coté si vous avez bien suivi ce
tutoriel). Ensuit c’est assez simple <ModelName> contient le nom du périphérique, c’est l’info qui
sera affichée sous l’icône. <DeviceDescription1> donne des infos supplémentaire qui s’affiche
dans les infos détaillées. <Manufacturer> indique le fabricant, utilisé comme critère de
regroupement par Windows. Et enfin <DeviceIconFile> qui comme son nom l’indique pointe vers
le fichier icône de notre package.
3. créer un icône pour votre périphérique
Je ne prendrais pas la peine de détailler trop la création de l’icône. Une bonne recherche sur
Google/image devrait vous donner une bonne base. Une petite préparation dans GIMP ou
Photoshop pour détourer l’objet et gérer la transparence. On exporte en PNG puis on importe
dans Axialis Icon Workshop, par exemple, qui se chargera de faire les déclinaisons en RGB/A.
Enregistrez le fichier ICO obtenu dans le répertoire DeviceInformation et n’oubliez pas de
modifier la propriété <DeviceIconFile> dans DeviceInfo.xml en fonction du nom que vous aurez
choisi.
4.- Create the devicemetadata-ms package
Pour créer le package au format CAB il va falloir utiliser l’utilitaire cabarc.exe de Microsoft depuis
l’invite de commande. Voici la nomanclature générale de la commande :
Cabarc.exe -r -p -P myDevice\ N [GUID].devicemetadata-ms myDevice\*.*
Mais si vous avez la flemme j’ai créer un fichier go.bat qui execute la commande pour vous. La
seule chose que vous avez c’est de lui indiquer un GUID pour nommer le fichier. GUID que vous
êtes censé avoir préparé au tout début de ce tutoriel. Si vous ne l’avez pas encore fait est bien
c’est le moment.
Pour indiquer le GUID il faut modifier le fichier go.bat avec un éditeur de texte et remplacer
[votre GUID] par le GUID que vous aurez généré. Une fois lancée la commande va créer un fichier
DEVICEMETADATA-MS qui contiendra les métadonnées de votre périphérique. Il s’agit en fait
d’un fichier CAB avec une extension alternative.
5. installez le package devicemetadata-ms
Pour installer le package il suffit de copier le fichier DEVICEMETADATA-MS obtenu dans le
répertoire suivant (attention il s’agit d’un répertoire caché) :
C:\ProgramData\Microsoft\Windows\DeviceMetadataStore\fr-fr
Le sous répertoire fr-fr dépend de la langue de votre système d’exploitation.
Et voila quand vous ouvrirez votre périphérique dispose désormais d’une belle description et
d’une belle icône dans la fenêtre « Périphérique et Imprimante ». Si jamais vos modifications
n’apparaissent pas, commencez par rafraichir l’affichage de la fenêtre avec F5, puis essayer de
déconnecter et reconnecter l’appareil.
Si les changements ne sont toujours pas pris en compte vérifiez bien le HardwareID que vous
avez indiqué dans les fichiers XML (une esperluette oubliée, un O à la place d’un 0) ainsi que les
caractères utilisé dans vos description (&sup2; par exemple n’est pas reconnu).
6. problèmes éventuels
Si les choses tournent mal ou que vous vous êtes trompé d’icône ou de description, ne paniquez
pas ça peux s’arranger. Il suffit de faire les corrections dans les fichiers XML, de regénérer le
package et de remplacer l’ancien package devicemetadata-ms par le nouveau dans le répertoire
DeviceMetadataStore.
Dans le pire des cas il suffit de supprimer le cache local pour forcer le système à recharger les
données contenu de le répertoire DeviceMetadataStore. Le cache est situé dans le répertoire
%LocalAppData%\Microsoft\DeviceMetadata\.
Conclusion
Et voilà, j’espère vous aurez pu suivre ce tutoriel pas à pas. N’hésitez pas à envoyer vos
commentaires et à partager vos créations.
Cordialement
Sylvain
Références
•
•
Microsoft “How to Create a Device Metadata Package for Devices and Printers”
Customizing Icons on Windows 7 “Device and Printers”