#3
Vieux 20/01/2007, 21h26
Une custo de A à Z
Lefreut
-
Avatar de Lefreut
Team CustomXP.net
Date d'inscription : août 2003
Messages : 5 816
Lefreut est déconnecté
Maintenant que les présentations sont faites, voila de quoi illustrer ce qui vient d'être détaillé. Nous allons voir comment réaliser une custo simple mais efficace, en partant sur une base de 10 fichiers à modifier. Afin de ne pas s'y perdre dans les différents répertoires et chemins, mettons en place une fois pour toute l'environnement de travail :
  • Le répertoire de travail "général" sera placé dans c:\, et nommé wip ( donc c:\wip\ ).
  • Un sous dossier "prepa-ressource" sera utilisé pour ranger les ressources à utiliser une fois triées, avant de les injecter dans nos fichiers à modifier. ( c:\wip\prepa-ressources\ )
  • Le dossier Batchmod sera placé directement dans c:\wip ( donc c:\wip\BATCHMOD\ )

Vous devez donc avoir ou imaginez ceci :


Le répertoire BATCHMOD devant bien évidement contenir tous les sous répertoires _IN, _OUT, _SOURCE, etc... ainsi que les scripts de commandes.

Etape 1 : Extraire les fichiers originaux
Pour cela, nous allons utiliser le script "copy.cmd" présent dans le répertoire BATCHMOD. Comme nous l'avons vu plus haut, ce script utilise Replacer et son listing de fichiers systèmes susceptibles d'être modifiés. Double cliquez sur copy.cmd et laissez faire. Vous constaterez l'apparition d'une fenêtre cmd travaillant toute seule, chaque ligne présente représentant la copie d'un fichier vers le répertoire "_IN". Une fois l'opération terminée, vous aurez ceci :


Il ne vous reste plus qu'a appuyer sur n'importe quelle touche pour fermer la fenêtre.
Rendons nous maintenant dans le répertoire _IN. Vous constatez que ce répertoire contient maintenant une liste non négligeable de fichier système de différentes sortes. Sont présents des exécutables, des librairies ( dll ),mais aussi des applets du panneau de configuration ( .cpl ), des écran de veille ou encore des contrôles activeX. Sachant que nous partons sur la base de 10 fichiers à modifier, nous allons faire un peu de tri pour ne conserver que ce qui nous intéresse, à savoir :
  • 2 excecutables ( explorer.exe et iexplorer.exe )
  • 2 applets du panneau de config ( desk.cpl et sysdm.cpl )
  • 6 librairies DLL ( shell32.dll, msoeres.dll, mydocs.dll, netshell.dll, msgina.dll et mshtml.dll )

Ne vous fixez pas sur le choix des fichiers, il est pour l'exemple aléatoire, bien que certains ne soient pas pris totalement au hasard. En effet, la librairie contenant le plus d'icône est shell32.dll, elle est donc très utile pour impacter bon nombre d'icône de l'interface. De la même façon, msgina est la dll contenant le nécessaire pour afficher l'écran de fermeture de XP, elle est donc sélectionnée elle aussi. Le reste des dll est a choisir en fonction de ce que vous voulez modifier. Pour l'exemple, nous ne nous attarderons pas sur leur contenu.

Voila, la première étape est terminée. Vous avez normalement un répertoire _IN contenant nos 10 fichiers a modifier, fichiers pour le moment parfaitement dénués de toutes modifications. Votre répertoire de travail ressemble donc a ceci :


Etape 2 : Extraire les ressources
Nos fichiers originaux sont maintenant prêts à être modifiés. Seulement à ce niveau, rien en vous permet de savoir quelles ressources sont contenues dans ces fichiers, ni même les ressources dont vous allez avoir besoin en remplacement. Nous allons donc procéder à l'extraction de ces ressources afin de pouvoir les consulter. Une fois extraites, les ressources seront consultables comme n'importe quel fichier ( en l'occurrence, des .ico, .bmp, .avi, ou encore .cur ), ce qui vous permettra de trouver leur remplacent facilement.

Pour cette étape, c'est le script extract.cmd qui nous intéresse. En effet, comme vu précédemment, ce script extrait toutes les ressources des fichiers, à la condition que ces fichiers soient placés dans le répertoire "_SOURCE". Commencez donc par copier les 10 fichiers présents dans _IN vers le répertoire _SOURCE. Une fois la copie effectuée, lancez le script extract.cmd présent dans le répertoire BATCHMOD. Une fenêtre système s'ouvre à nouveau, listant un à un les fichiers exploités. Vous aurez une fois l'opération terminée ceci :


Maintenant, direction le répertoire "ressources" présent dans BATCHMOD. Vous pouvez voir que 10 sous répertoires ont été créé, chacun contenant un lot de ressources de tout type, et portant le même nom que nos 10 fichiers présents dans _SOURCE. Sont présents hormis les fichiers .avi, .bmp, .ico et .cur des fichiers *.rc à ne pas supprimer. De même pour le fichier script.txt qui est généré par le script d'extraction, il est indispensable de le conserver en l'état et de ne surtout pas le supprimer ! C'est ce fichier qui est exploité par reshack en ligne de commande.

A partir de ce point, c'est à vous de prendre le relais pour quelques temps. En effet, vous avez maintenant la liste des ressources contenues dans les fichiers systèmes et il est nécessaire de trouver leur équivalent en vue de leur remplacement. A vous de choisir quelle ressource vous souhaitez changer et par quoi vous allez la remplacer. Libre à vous de remplacer ce que bon vous semble. Pour notre exemple, une sélection d'icône, de bitmap et d'animation ( avi ) sur le thème GANT sera utilisée et placée temporairement dans le répertoire "prepa-ressource". N'hésitez pas à utiliser ce répertoire le temps du tri, il est la pour ça.

Une fois votre sélection faite arrive une manipulation un peu contraignante...
En effet, les ressources que vous avez choisi vont venir prendre la place des ressources précédemment extraites dans le répertoire "ressources". Seulement pour profiter des scripts suivants, chaque ressource choisie devra porter le même nom que celle a remplacer. Si vous observez le contenu des sous répertoires de "ressources", vous constaterez que le nom des fichiers est composé d'un format ( icon, bitmap, etc..) suivit d'un numéro ( _1, _2, etc...). Vos ressources de remplacement devront donc porter les mêmes noms, et surtout attribués correctement afin de ne pas avoir de mauvaise surprise à la fin. Un coup d'oeil au screen ci dessous illustrera bien tout cela :


Vous pouvez voir que chaque icône extraite de shell32 ( dans le volet de gauche ) à sa remplaçante de prête et portant le même nom ( icon_xx.ico ). Vous devrez donc avant d'aller plus loin préparer toutes vos ressources en suivant cette règle. Un conseil tout de même : dans votre répertoire de travail "prepa-ressource", créer autant de répertoire que vous avez de fichier ( pour notre exemple 10, portant le nom des fichiers systèmes traités ) et rangez méticuleusement chaque ressource de remplacement dans le bon répertoire. Cela vous facilitera les manipulations suivantes.

Etape 3 : Le remplacement des ressources
Procédons au remplacement des ressources, et ce grâce au script "modify.cmd".
Première chose, écraser les ressources extraites des fichiers par celles que vous venez de préparer. Copiez chaque lot de ressource de remplacement vers son sous répertoire dédié, dans le répertoire BATCHMOD\ressources\. Vous écraserez donc toutes les ressources d'origines que vous avez décidez de remplacer. Une fois les copies terminées, place à l'exécution du script de modification.

Lancez le script "modify.cmd" depuis le répertoire BATCHMOD. Celui ci va automatiquement réinjecter les ressources modifiées dans des copies des fichiers systèmes et va placer ces copies dans le répertoire "_OUT" de batchmod.
Si tout ce passe bien, vous devriez donc avoir un répertoire _OUT contenant nos 10 fichiers modifiés, et les répertoires _IN et _SOURCE inchangés :


Notez le changement de l'icône pour les 2 exécutables, preuve que le script modify.cmd a fonctionné correctement.

Etape 4 : Le remplacement des fichiers systèmes
Ca y est, vous y êtes presque. Vos fichiers systèmes sont maintenant prêts à retourner dans leur répertoire de travail, et c'est le script "replace.cmd" qui va vous y aider.
Grâce à ce script, il n'est plus nécessaire de faire le remplacement à la main avec l'obligation de prendre en compte les répertoires de sauvegarde de XP ( dllcache, servicepackfiles\i386 ). Le script se charge de remplacer autant de fois que nécessaire le fichier, dans les différents répertoires systèmes le contenant. Encore une fois, ce script fait appel à la puissance du script "replacer" qui se débrouille très bien.

Lancez donc votre script replace.cmd et laissez vous guider. L'ensemble des fichiers présents dans le répertoire _OUT va être utilisé pour écraser les fichiers d'origines fin de vous offrir une interface moddée selon vos désirs. L'opération est courte mais peu nécessiter votre intervention. Si un message d'alerte apparaît vous indiquant un changement de version pour les fichiers, ignorez le et confirmez juste derrière, c'est la protection des fichiers systèmes de XP qui fait des siennes. Si vous n'ignorez pas ces messages, les fichiers ne seront jamais remplacés !

A l'issue de l'exécution du script, votre machine est prête à redémarrer pour prendre en compte toute vos modifs. Opération nécessaire car les dll chargées en mémoire au précédent démarrage doivent être remplacées par les nouvelles. Si jamais certaines ressources ( les icônes notamment ) ne sont pas changées même après le redémarrage, utilisé iconToolz qui permet de reconstruire le cache d'icône. Les quelques manquantes à l'appel devraient pointer le bout de leur nez.

Dernière modification par bubka ; 25/04/2009 à 13h22.

Réponse avec citation Haut de page