L'édition de DLL
Partie 1 :arrow: Présentation
Partie 2 :arrow: L'édition avec reshack Partie 3 :arrow: Le remplacement des fichiers |
L'édition de dll : Présentation
http://customxp.net/imgbank/img/tutos/puce.gif Avant propos
http://customxp.net/imgbank/img/tutos/puce.gif Introduction Comme tout bon customiser qui se respecte, vous souhaitez pouvoir modifier votre interface de travail, et ce jusque dans les moindres recoins. Pour arriver à une uniformité de votre thème, vous avez sûrement installé et utilisé des logiciels vous permettant de modifier les icônes de vos lecteurs, répertoires et autres menus de XP. Mais cette façon de procéder présente plusieurs inconvénients. Tout d'abord, comme précédemment indiqué, vous devez installer un, voir plusieurs logiciels pour modifier un maximum d'icône, ces logiciels étant souvent payants. Ensuite, vous n'êtes pas à l'abri d'un plantage sérieux vous obligeant à formater, et le cas échéant à refaire toute vos modifications, ce qui demande souvent pas mal de temps ! Pour terminer, aucun de ces softs ne vous permettra de changer toutes les icônes, dans toutes les circonstances ( certaines fenêtres comme "ouvrir", "enregistrer", "parcourir", etc...conservent les anciennes icônes ). Pour compenser toutes ces lacunes, il existe une solution un peu moins pratique, mais bien plus efficace, l'édition des dll et le remplacement des icônes qu'elles contiennent. http://customxp.net/imgbank/img/tutos/puce.gif Un peu de technique Pour tout ceux qui ne le sauraient pas, les fichiers *.dll (Dynamic Linked Library) servent entre autre à emmagasiner des icônes afin de n'avoir qu'un fichier à exploiter. Comme pour toute librairie, les éléments ( en l'occurrence les icônes ) sont identifiées par un numéro d'index, auquel fait appel le code exécuté par votre OS. Ainsi, pour shell32.dll par exemple, si le code fait appel à l'icône des dossiers, il pointera vers "C:\windows\system32\shell32.dll,4", ou 4 est le numéro d'index de l'icône des dossiers. Ce que nous vous proposons ici est d'éditer la dll voulue grâce à un petit soft dédié, et remplacer la ressource (ici une icône) par une autre plus à votre goût. Une fois le remplacement fait, il ne restera plus qu'a remplacer la dll d'origine par la dll modifiée dans Windows, et votre interface sera personnalisée. http://customxp.net/imgbank/img/tutos/puce.gif Préparatifs Pour effectuer les manipulations, voici tout d'abord ce dont vous allez avoir besoin : - En premier lieu, l'éditeur de dll. Le plus connu d'entre eux est resource hacker (ou ResHack). http://www.customxp.net/forum/images...d_dl_small.png - Ensuite, les dll à modifier. Pour changer une bonne partie des icônes de l'interface, l'édition de shell32.dll est suffisante, mais rien n'oblige à s'y limiter. Pour ce dossier nous utiliserons cette dll. - Un répertoire de travail temporaire dans lequel vous copierez shell32.dll ( vous la trouverez dans c:\windows\system32 ) - Pour un petit contrôle, nous vous conseillons d'utiliser un éditeur d'icônes comme Microangelo ou Axialis Iconworkshop. Il vous permettra de visualiser l'ensemble des icônes contenues dans la dll. - Pour finir, ils vous faut bien évidement de nouvelles icônes de remplacement. Suite : Utiliser Reshack |
L'édition avec reshack
Vous allez voir ici comment remplacer une icône contenue dans une dll avec reshack. Mais avant toute chose, un petit point technique sur la structure des fichiers icône ( .ico ) et des dll est nécessaire.
http://customxp.net/imgbank/img/tutos/puce.gif Le fichier .ico Le fichier ico peut être assimilé à un conteneur. En effet, de part la nécessité d'afficher une même icône dans différents formats ( taille et profondeur de couleur ) en fonction de la zone de l'interface, le fichier ico intègre plusieurs instances de la même image. Les instances sont définies en fonction de leur taille ( 16x16, 24x24, 48x48 pixels, etc ... ) et par le nombre de couleurs utilisées ( 16, 256, ou 32bits + couche alpha pour la transparence ). Lorsque par exemple vous ouvrez une icône avec un éditeur dédié comme iconworkshop, celui ci affiche systématiquement l'ensemble des instances de taille et couleur sous forme de liste. Vous êtes ensuite libre de modifier l'instance de votre choix, sans que cela n'impacte le reste des instances. Au delà de la taille et des couleurs, chaque instance est donc indépendante et peut être constituée d'image différente. Evidement, il y a peu d'intérêt à utiliser un fichier ico dont les instances seraient complètement différentes. Sachez que sous XP, ce sont majoritairement les instances en 16 millions de couleurs/32bits alpha qui sont utilisées par le shell ( notamment pour les raccourcis, grosses icônes, panneau de config, etc ... ) mais que les icônes en 16 et 256 couleurs sont toujours d'actualité. En effet, ces formats ne permettant pourtant pas un bon rendu visuel sont utilisés pour toutes les petites icônes disséminées par ci par la dans l'interface et dont la présence visuelle est limitée. http://customxp.net/imgbank/img/tutos/puce.gif Le fichier DLL Passons aux librairies dynamiques maintenant, plus communément appelées Dll. Outre leur fonction au sein du système que nous ne développerons pas ici, ces fichiers emmagasinent donc des ressources graphiques diverses comme des fichiers bmp, png, avi, ico, cur, etc ... Ces ressources pouvant bien évidement être modifiées. La structure d'une dll est toujours la même et quelque soit l'éditeur de ressource que vous utiliserez, la présentation des ressources sera identique, en l'occurrence sous forme d'arborescence. Généralement, chaque type de ressource a sa propre branche dans l'arborescence sous la forme d'un sous répertoire nommé suivant le type de ressource. Ainsi, vous trouverez très régulièrement un sous répertoire bitmap, cur ou encore AVI. Quand aux icônes, la structure peut être légerement différente. Comme indiqué plus haut, les icônes intègrent plusieurs instances. Les Dll intègrent donc une branche détaillant l'ensemble des fichiers ico embarqués mais également une branche détaillant la liste de toutes les instances de tous les fichiers ico. Cette double structure permet au système d'identifier facilement l'instance à utiliser en fonction de la zone qui va afficher l'icône. La branche dédié au type "icônes complètes" se nomme Icon Group et la branche dédiée au type des instances Icon. Pour chaque ressource appartenant à une branche de type, un sous répertoire portant le nom de la ressource existe ( souvent un nombre ), contenant lui même une ligne nommée 1036 correspondant au langage. http://customxp.net/imgbank/img/tuto...edition-02.jpg http://customxp.net/imgbank/img/tuto...edition-03.jpg Dernière chose concernant les ressources de type icône, lorsque vous déroulerez et afficherez sous reshack une ressource de type Icon group (voir le 2nd screen juste au dessus ), vous pourrez voir s'afficher dans le volet de droite l'ensemble des instances de l'icône, alors que l'affichage d'une ressource de la branche Icon ne permettra d'afficher que l'instance désignée. http://customxp.net/imgbank/img/tutos/puce.gif Utiliser Reshack Passons à l'édition à proprement parlé maintenant. Lancez reshack et ouvrez votre copie de shell32 depuis votre répertoire de travail. Comme indiqué plus haut, vous allez constater la présence de l'arborescence des ressources dans le volet de gauche, celui de droite étant vide. Ce même volet de droite ne sert qu'a afficher la ressource lorsque vous cliquerez sur une ligne 1036 du volet de gauche. Déroulez la branche Icon group sur la ressource de votre choix ( pour l'exemple, la numéro 5 correspondant à l'icône des dossiers ) et cliquez sur 1036. Vous voyez donc apparaître à droite toutes les instances contenues dans l'icône n° 5, ainsi que le détail des tailles et nombre de couleur. L'info Ordinal name correspondant aux noms des différents sous répertoires d'instances de la branche Icon constituant la ressource Icon Group 5. Voici la marche à suivre pour remplacer la ressource 5: Votre icône a été automatiquement modifiée dans reshack, vous pouvez le voir dans le volet de droite. Il ne vous reste plus qu'a sauvegarder votre dll en cliquant sur le menu File puis Save. Comme toujours sous reshack, la dll ouverte est dupliquée lors de la sauvegarde afin de conserver une version d'origine en cas de problème. Pensez à conserver soigneusement cette copie. Une dernière petite chose concernant les instances : Si votre icône de remplacement contient moins d'instance que l'icône remplacée, vous constaterez que le contenu de la branche Icon a été mis à jour lors du remplacement. Sachant qu'un répertoire de Icon correspond à une instance, le nombre total de rép. de Icon aura diminué d'autant qu'il y a d'instance en moins dans votre icône de remplacement. http://customxp.net/imgbank/img/tutos/puce.gif Petite vérification Si vous le souhaitez, vous pouvez contrôler votre dll modifiée à l'aide de Axialis iconworkshop ou Microangelo. En effet, ces deux éditeurs sont capables d'ouvrir les fichier dll et d'afficher toutes les icônes qu'ils contiennent. Voici le contenu de shell32 d'origine et d'une shell32 modifiée avec les icônes Gorilla : |
Le remplacement des fichiers
Dernière étape, le remplacement du ou des fichiers en cours d'utilisation par celui ou ceux que vous venez de modifier.
http://customxp.net/imgbank/img/tutos/puce.gif Remplacement à la main Méthode pratique tant que vous n'avez qu'à remplacer un ou deux fichiers, mais qui devient un enfer quand vous avez 30 fichiers à remplacer. Première chose, il faut savoir que XP intègre un système de vérification des fichiers systèmes qui fonctionne en temps réel. De même, une dll comme shell32 sera systématiquement en cours d'utilisation par votre système ce qui vous empêchera ( de prime abord ) de faire quelques manipulations que ce soit sur le fichier. Pour le problème du système de vérification des fichiers systèmes Ensuite, pour faire le remplacement en lui même, voici la marche à suivre : Pourquoi remplacer également le fichiers dans ces deux répertoires ? tout simplement car si windows essaie de restaurer le fichier au redémarrage après avoir identifié que celui de system32 est modifié, il utilisera une des copies présentes dans l'un de ces deux répertoires complémentaires. Ainsi, en ayant modifié également les copies de sauvegarde, même si le fichier est restauré, la version utilisée pour la restauration sera bien celle modifiée par vos soins. Evidement, les modifications ne seront visibles qu'une fois votre machine redémarrée.
http://customxp.net/imgbank/img/tutos/puce.gif Utiliser un script de remplacement La modification des fichiers systèmes ayant fait énormément d'émules au sein de la communauté des customiseurs, certains membres ont créé des scripts de remplacement automatique permettant de s'affranchir de toutes ces manipulations et de ne pas être dérangé par la protection des fichiers systèmes de XP. Vous pouvez donc utiliser Replacer ou bien ReplaceIt tout deux dédiés au remplacement "en live" des fichiers systèmes par simple glisser/déposer. Pour vous en servir, faites comme suit :
http://customxp.net/imgbank/img/tutos/puce.gif Utiliser LockedCopy Bricomix, ex-membre de CustomXP.net a mit au point un petit logiciel de remplacement très pratique car complètement interfacé, il s'agit de LockedCopy. http://www.customxp.net/forum/images...d_dl_small.png Récupérez le fichier, installez le logiciel et lancez le. L'interface se résume uniquement à une fenêtre dont il va falloir renseigner les champs : Si le fichier est protégé par le système, ce qui est le cas pour shell32, le redémarrage du système sera alors automatiquement proposé et le remplacement du fichier effectué lors de la phase de redémarrage de l'OS, avant que le fichier ne soit chargé en mémoire. |
08h11 |
Powered by vBulletin® Version 3.8.11 - Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Version française #21 par l'association vBulletin francophone
CNIL N°834125