IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Insérer une image dans un fichier exe


Sujet :

Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Insérer une image dans un fichier exe
    Bonjour. Je cherche à insérer une image (bmp) dans un fichier exe qui, je crois, est écrit en langage Delphi, comme dans cet exemple :

    object BitmapImage: TImage
    Left = 0
    Top = 320
    Width = 300
    Height = 180
    Picture.Data = {
    0A544A504547496D6167651E480000FFD8FFE000104A46494600010100000100
    010000FFDB004300020101010101020101010202020202040302020202050404.......
    Mon principal problème est de convertir mon image (bmp) en code directement utilisable (hexadécimal, apparemment), comme ci-dessus en rouge.
    J'ai essayé des logiciels de conversion d'image, mais le code que j'obtient ne semble pas fonctionner.
    En revanche, tous les codes du type "Picture.Data" que j'arrive à récupérer dans d'autres programmes à l'aide de Ressource Hacker fonctionnent parfaitement (l'image est bien visible lorsque je fais tourner mon fichier exe modifié. Quelqu'un peut-il m'aider?

  2. #2
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Je sais pas si c'est aussi nécessaire d'insérer le graphique de cette manière il y a plusieurs façons de le faire
    Vous insérez le bitmap dans fichier ressources
    Vous le stockez directement dans un Image.
    Ou vous utilisez un ImageList

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Points : 392
    Points
    392
    Par défaut
    Si c'est une ressource "invariable", il vaut mieux mettre l'image dans un fichier ressource, directive compilation $R pour un fichier *.res.
    Bon Code

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Merci pour ces premiers renseignements. Avec le logiciel Ressource Hacker, j'arrive effectivement à ajouter des fichiers image au format bmp dans le dossier ressource Bitmap; n'ayant pas ou très peu de connaissances en programmation, je ne sais pas comment faire pour ensuite demander au programme d'afficher l'image en question à un emplacement déterminé, dans un des dossiers que l'on trouve dans "RCData" (toujours avec Reshack);
    je précise que l'interface principale du programme se trouve dans "RCData" et pas dans le dossier "Dialog". Quel code me suggérez-vous d'utiliser?
    D'avance merci pour la clarté de vos explications...

  5. #5
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Et si tu passais directement par ton EDI ?

    Au fait, est-ce à toi le fichier que tu tentes de modifier ?

    En cas contraire : as-tu l'autorisation de son auteur ?

    Car sinon...

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    En réalité, il s'agit d'un freeware (jeu de rôle) comprenant un fichier exe et un fichier ini; l'auteur autorise et donne la possibilité de modifier librement le fichier ini afin de contribuer au développement de son projet.
    Je cherche juste à modifier légèrement l'apparence de l'interface du programme en le traduisant en français, en changeant la police, l'icône, et enfin en essayant d'y ajouter une image bitmap. Je sais que l'auteur est d'accord, et que je pourrais lui poser directement ma question, mais il ne parle que l'anglais, et vu que j'ai déjà du mal à comprendre...!
    Ma question se résume donc à ceci : j'arrive à ajouter une ressource bitmap dans un fichier exe à l'aide de Reshack, mais je ne sais pas ensuite comment faire pour demander au programme d'afficher cette image. Que faut-il écrire, en gros? (mon but : faire apparaître cette petite image dans le dossier "TMAINFORM" compris dans "RCDATA").

  7. #7
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonsoir,

    l'auteur autorise et donne la possibilité de modifier librement le fichier ini
    Autorise t-il la décompilation comme tu le fais ?

    Aimes-tu les oranges... ?

    As-tu lu sa licence ?

    Ne pense pas que je suis contre ce que tu tentes de faire, mais simplement te mettre en garde.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Il est vrai qu'on peut se demander ce que je bidouille! Je me suis renseigné à nouveau, il ne s'agit pas d'un freeware mais d'un "free software"; je pensais que c'était la même chose, mais après vérification, il s'agit d'un logiciel libre...Il ne possède pas de license et ne donne aucune restriction quand à son utilisation (si ce n'est que l'auteur se dégage de toute responsabilité en cas de mauvaise utilisation de son programme).
    Mon problème est que je n'ai pour l'instant pas le temps matériel de me lancer dans la programmation; ce qui est frustrant, c'est l'impression que ce que je cherche à obtenir est en réalité assez simple.
    Merci pour vos recommandations.
    Et pour ma question, on fait quoi?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Points : 63
    Points
    63
    Par défaut
    Salut

    comme mettre une image dans un exe : c'est pas ce que font certains virus pour mieux tromper la victime ?? Ca sent pas bon ton truc. De plus tu vas te lancer dans un truc qui ressemble à un quadruple saut périeux arrieres avec triple lootz triple vrille et tout ca sans bretelles.

    Voila A+ et bonne chance à toi

  10. #10
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Renaud, tu es ici dans un club privé de développeurs, dont beaucoup sont des pros et vivent - plus ou moins - de leurs passion.

    c'est l'impression que ce que je cherche à obtenir est en réalité assez simple.
    La réalisation d'un programme est le fruit de centaines d'heures et de nuits...

    Pour être franc et direct, la simple idée pour tout développeur sachant ce que représente la somme de travail énorme que réclame le développement d'un programme ; la décompilation, quelqu'en soit sa forme, sa fin ou sa licence, est un sujet extrèmement sensible...

    Tu peux lire entre les lignes...

    Qu'en pense mes camarades Delphinautes ?


  11. #11
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 959
    Points
    6 959
    Par défaut
    Citation Envoyé par RenaudB
    Ma question se résume donc à ceci : j'arrive à ajouter une ressource bitmap dans un fichier exe à l'aide de Reshack, mais je ne sais pas ensuite comment faire pour demander au programme d'afficher cette image. Que faut-il écrire, en gros? (mon but : faire apparaître cette petite image dans le dossier "TMAINFORM" compris dans "RCDATA").
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
       var
          Res: TResourceStream;
          ImageBitmap: TBitmap;
       begin
          Res := TResourceStream.Create(HInstance, szFichierImage, 'RT_RCDATA');
          ImageBitmap := TBitmap.create;
          try
             ImageBitmap.LoadFromStream(Res);
             ImageBitmap.SaveToFile(szFichier);
          finally
             ImageBitmap.Free;
             Res.Free;
          end;
    end;
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  12. #12
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    ResHacker se fait vieux !
    Oriente toi plutôt vers ResTuner (payant mais une version d'évaluation existe). Je ne sais plus s'il possède un assistant pour changer directement l'image .. faut voir
    .: La cosse : il n'y a que ça de vrai :.

  13. #13
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 959
    Points
    6 959
    Par défaut
    Citation Envoyé par basnifo
    ResHacker se fait vieux !
    Oriente toi plutôt vers ResTuner
    Et que fait-il de plus ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  14. #14
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    Ben .. il est récent !!! Et forcément il fonctionne bien mieux
    ResHacker n'est plus mis à jour depuis un moment, plante souvent avec par exemple des programmes Delphi6->7 au niveau des forms ...
    ResTuner est idéal pour les ressources (notemment avec progs delphi) (je ne fais pas de pub, mais c'est le plus puissant que j'ai essayé ...)

    PS: ResTuner est un composant de PE-Explorer, on comprendra qu'il soit puissant
    .: La cosse : il n'y a que ça de vrai :.

  15. #15
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 959
    Points
    6 959
    Par défaut
    Citation Envoyé par basnifo
    ResTuner est idéal pour les ressources (notemment avec progs delphi) (je ne fais pas de pub, mais c'est le plus puissant que j'ai essayé ...)

    PS: ResTuner est un composant de PE-Explorer, on comprendra qu'il soit puissant
    A part stocker et extraire des ressources, je ne fait rien de plus, donc ResHacker me suffit. Surtout si ResTuner est payant.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Eureka
    Merci à vous deux (Lung et basnifo); j'ai enfin trouvé le moyen de réaliser mon objectif (en particulier grâce à Restuner). Dans la soirée, je vous explique comment j'ai procédé, ça peut toujours intéresser un autre profane comme moi.
    Je veux bien comprendre que j'arrive sur ce site un peu comme un intrus, n'ayant, comme je l'ai déjà dit, aucune connaissance en programmation, et posant des questions qui vous paraissent suspectes; à ce sujet, voici ce que j'ai à vous dire (surtout à J.P. ) :
    1 - Je ne fais rien d'illégal, je ne cherche à nuire à personne;
    2 - Vous n'êtes pas dans un club privé : avant d'en arriver à un stade où l'on commence à bien "maîtriser le truc", il faut bien débuter, ce qui amène forcément à poser des questions stupides ou maladroites;
    3 - Mettez-vous à ma place, souvenez-vous du temps où vous avanciez à tâtons dans l'obscurité, et où la moindre découverte était comme une petite victoire...
    Sur ce, c'est promis, je vais prendre des cours de programmation!

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Suite et fin
    Pour insérer une image bmp dans le fichier exe du programme, j'ai procédé ainsi :
    1 - A l'aide de ResTuner, parcourez le fichier exe d'un programme X, et prélevez la portion de code correspondant à la présence d'une image bmp :
    object BitmapImage: TImage
    Left = 0
    Top = 0
    Width = 370
    Height = 370
    Picture.Data = {.............................}
    End

    2 - Insérez ce code dans votre programme, à l'endroit voulu (attention, à cet instant, vous utilisez un bout du programme X et une image dont vous n'êtes pas propriétaire);
    3 - Vérifiez que votre programme fonctionne toujours après recompilation et sauvegarde à partir de ResTuner;
    4 - Réouvrez votre programme avec ResTuner, recherchez l'image que vous venez d'insérer, puis, remplacez-la par la votre, recompilez et sauvegardez.
    Voilà. Certes, cette méthode n'est pas des plus élégantes, elle n'a pas grand chose à voir avec de la programmation au sens "noble" du terme, si je puis dire, mais elle a le mérite d'être légale (cela ne dépend que de vous), simple et fonctionnelle.
    Pour répondre à Lung, merci pour le code; malheureusement, je n'ai pas réussi à le faire marcher, mais il est sûrement bon! En ce qui concerne ResTuner, il est vraiment super (effectivement meilleur que ResHack, puisqu'il est capable de repérer davantage de ressources et d'objets, et qu'il permet de les modifier, ce qui n'est pas le cas de ResHack qui n'autorise que le remplacement automatique de certains fichiers, à condition qu'il les ait identifié); je vais l'acheter!

  18. #18
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonsoir,

    RenaudB a écrit :
    [...] Je veux bien comprendre que j'arrive sur ce site un peu comme un intrus, n'ayant, comme je l'ai déjà dit, aucune connaissance en programmation, et posant des questions qui vous paraissent suspectes; à ce sujet, voici ce que j'ai à vous dire (surtout à J.P. ) :
    1 - Je ne fais rien d'illégal, je ne cherche à nuire à personne;
    2 - Vous n'êtes pas dans un club privé : avant d'en arriver à un stade où l'on commence à bien "maîtriser le truc", il faut bien débuter, ce qui amène forcément à poser des questions stupides ou maladroites;
    3 - Mettez-vous à ma place, souvenez-vous du temps où vous avanciez à tâtons dans l'obscurité, et où la moindre découverte était comme une petite victoire...
    [...]
    Hé oui mais curieux de commencer à l'aide d'un décompil'

    Bonne progr, oui mais avec un outil dédié cette fois

    Il en existe de gratuits !

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Sans rancune, J.P.
    Au fait, qu'est-ce qu'un outil dédié? Avez-vous un exemple?
    Pour en finir avec le sujet qui fâche (la décompilation), je trouve qu'il est toujours intéressant de "démonter un moteur pour en comprendre le fonctionnement mécanique"...En tout cas, c'est comme ça que je comprend le mieux; à partir d'un cas concret.

  20. #20
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonsoir,

    Sans rancune Renaud

    En effet, tu dois être du genre à démonter un moteur pour apprendre à le remonter ou voir comment ça fonctionne, mais d'autres font ça pour le piquer

    Question outil dédié, je pensais par exemple au Delphi 7 version perso en achetant un gros bouquin, tu ne paies que le bouquin et tu as en prime ton Delphi 7 bien à toi qu'il faut que tu enregistres chez Borland.

    Tu peux aussi avoir Delphi 6 gratos direct via un téléchargement chez Borland.

    En attendant, regarde pour au moins Delphi 6 perso :
    http://www.developpez.net/forums/showthread.php?t=3052

    Bonne progr'

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/07/2013, 12h48
  2. Réponses: 4
    Dernier message: 25/01/2010, 16h07
  3. Réponses: 5
    Dernier message: 12/02/2008, 16h15
  4. Insérer une image dans un fichier Word
    Par nono_cap dans le forum Langage
    Réponses: 1
    Dernier message: 22/08/2007, 08h30
  5. [Crystal Reports 9] comment insérer une image dans Détails
    Par VVE dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/10/2003, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo