Developpez.com - Delphi
Rubrique Delphi Forum Delphi Forums Autre rubrique
X

Choisissez d'abord la catégorieensuite la rubrique :


Projet ScanResources

Date de publication : 8/10/2002

Par Pierre Castelain
 

Développement d'un programme permettant d'explorer les resources de tous les fichiers d'un dossier et d'extraire celles-ci grâce à ResHacker.


1. Description
2. Principe
3. Téléchargement


1. Description

Dans mon activité professionnelle, il m'arrive fréquemment d'avoir besoin de créer des icônes ou des petites animations (AVI) pour mes applications. Mes aptitudes créatives étant ce qu'elles sont, il m'arrive souvent de m'inspirer d'objets graphiques existants pour réaliser ce que je désire. Il me faut donc un outil permettant d'extraire ces objets graphiques des applications installées sur ma machine.
Après avoir cherché sur le web, je me suis aperçu que les programmes existants étaient soit limités, soit payants. Et franchement, je ne suis pas vraiment d'accord pour payer un petit outil de ce genre. Le seul outil vraiment valable que j'ai trouvé est ResHacker. Celui-ci propose de nombreuses fonctionnalités très intéressantes sauf une : la possibilité de scanner (explorer) l'ensemble des ressources de nombreux fichiers à la fois.
Après quelques minutes de réflexion, j'ai eu l'idée. Pourquoi ne pas faire un outil en Delphi qui scannerait les ressources et qui utiliserait ResHacker pour les manipuler. Aussitôt dit, aussitôt fait. ScanResources est né.


2. Principe

Le principe de fonctionnement de ScanResources est assez simple. Il cherche récursivement tous les fichiers correspondant à un modèle (*.dll par exemple) dans un dossier spécifié. Pour chaque fichier, il énumère toutes les ressources existantes pour un type défini. Cela permet de ne chercher que les AVI par exemple. Le résultat est stocké dans un TreeView. Il est possible par un clic droit de demander l'extraction d'une ressource, de toutes les ressources d'un type, ou de toutes les ressources du fichier. L'extraction est réalisée grâce à ResHacker en utilisant un script.
Attention, pour fonctionner correctement le programme doit être installé dans le même dossier que ResHacker.exe.

Ce programme a quelques défauts, c'est évident. Le premier et le plus important à mes yeux est le TreeView. Celui-ci n'est pas vraiment adapté à ce genre d'application mais je ne voulais pas utiliser de composant autre que ceux de Delphi 5 pour que tout le monde puisse le modifier et le compiler sans problème.
Si vous voulez le modifier pour l'améliorer je suis disposé à vous aider et à maintenir cette page à jour.
Sinon, vous pouvez en faire ce que vous voulez.

Concepts intéressants abordés :

  • Enumération de ressources en utilisant des Hooks.
  • Recherche de fichier récursive avec FindFirst, FindNext et FindClose.
  • Utilisation d'un TreeView (simple).
  • Pilotage d'une application par script (ResHacker).
  • Obtention par le système de fichier et dossier temporaire et suppression de ceux-ci en fin d'application (en un seul appel).
  • Utilisation de l'expert de DLL de ressources pour la localisation.
  • Utilisation des ResourceStrings.
  • Deux ou trois petits trucs supplémentaires.

3. Téléchargement

Pour que le programme fonctionne, vous avez besoin de ResHacker.

Le projet Delphi 5 compressé dans une archive zip (mise à jour du 8/10/2002) : ScanResources.zip



Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2002 Pierre Castelain. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -