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

Modules Perl Discussion :

Probleme d'ajout d'icone avec par packer


Sujet :

Modules Perl

  1. #1
    Futur Membre du Club
    Homme Profil pro
    perl et web :D
    Inscrit en
    Janvier 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : perl et web :D

    Informations forums :
    Inscription : Janvier 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Probleme d'ajout d'icone avec par packer
    Bonjour, hier j'ai voulu essayer d'ajouter un icone dans un programe perl que je converti en exe. voici la commande que je pose
    "pp -o calc.exe calc.pl --gui -i "C\Dossier\Fichier.ico"
    Il me dit ensuite que l'option n'existe pas :
    "Unknow option i"
    J'ai aussi essayer avec -icon mais la meme erreur
    "Unknow option icon"
    AI-je mal installer par packer, sachant que j'ai utilisé la solution miracle de djibril.
    Merci de m'aider !

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je remonte ce sujet car je rencontre un problème bien connu du web avec l'ajout d'une icône dans un exécutable perl : depuis un moment, l'option -i ou --icon de Par::Packer a été supprimée, il faut donc utiliser Win32::Exe pour l'ajouter. Voila comment j'ai procédé, dans un fichier .bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\strawberry\perl\bin\perl.exe -MWin32::Exe -E "Win32::Exe->new('sdd_traceability.exe')->update(icon => 'sdd_traceability32.ico', info => [ 'FileDescription: SDD Traceability checker', 'FileVersion: %1' ]);"
    D'une part, les infos FileDescription et FileVersion ne figurent pas dans le détail de la fenêtre Windows de propriété de l'exécutable, d'autre part, lors du lancement de l'exécutable, des dizaines d'erreur du style :
    format error: bad signature: 0xa11afe7a at offset 4988420 in file H:\SDD-TRACEABILITY-ANALYSIS\v0.5.0.0\sdd_traceability.exe
    at Tk/Widget.pm line 203.
    apparaissent.
    J'ai lu ici, qu'il fallait impérativement des icônes de 32x32 codées avec une palette de 256 couleurs (j'avais initialement un fichier avec une icône de 48x48 et une deuxième de 32x32). Je génère mon fichier icône à l'aide de Gimp (la dernière version avec une seule icône de 32x32 est en pièce jointe zippée car l'extension ico n'est pas admise).

    Que dois-je faire pour corriger cette erreur ?
    Fichiers attachés Fichiers attachés
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Depuis que l'option a été retirée du module PAR::Packer, je n'ai jamais réussi à mettre une icône sur un exe Perl. L'utilisation du module Win32::Exe n'a jamais été concluante. Je considère que ce n'est plus possible.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    En fait, l'usage que j'ai montré avant ajoute bien l'icône, mais lors du premier lancement de l'exe, elle génère ces erreurs (si on lance l'appli depuis le bureau ou un menu, on ne les voit pas, donc c'est un problème mineur). L'icône, elle, est à jour (l'icône ne l'appli dans un explorateur Windows est bien celle attendue).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Tiens, si ça fonctionne chez toi, il faudrait que je refasse des tests, mais à l'époque, il fallait des icônes 16x16.

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Ça marchait même avec un fichier icône (.ico) contenant deux icônes, une en 48x48 et une en 32x32 (mais bien sûr, avec ce "format error: bad signature" (voir PJ).
    Fichiers attachés Fichiers attachés
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  7. #7
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Dans mon exemple du message #2, il y a une erreur concernant les infos du fichier exe : la syntaxe pour définir FileDescription et FileVersion était incorrecte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\strawberry\perl\bin\perl.exe -MWin32::Exe -E "Win32::Exe->new('sdd_traceability.exe')->update(icon => 'sdd_traceability32.ico', info => [ 'FileDescription=SDD Traceability checker', 'FileVersion=%1' ]);"
    Il fallait séparer l'attribut de la valeur avec un "=" et pas un ": ".
    Une fois corrigé, mes informations sont bien dans les propriétés de l'exécutable, mais j'ai toujours des erreurs de signature.
    Je continue d'investiguer.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  8. #8
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Je vais tester ce soir.

  9. #9
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Dernier essai en date :
    - extraire l'icône présente en fin de pp (utilisation de la méthode get_group_icon_names() et export_group_icon() de Win32::Exe)
    - modifier ce fichier .ico sous Gimp pour y mettre mes images
    - et update de l'icône avec mes modifs

    Rien n'y fait, les erreurs de signature sont encore là.

    A noter : en modifiant l'icône par celle extraite du fichier sorti de pp (donc sans édition sous Gimp) et en modifiant les infos, l'erreur de signature n'apparait pas.
    La piste se trouve sans doute dans le format du fichier .ico
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  10. #10
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bon,

    Je viens de tester la modification d'un exe créé par PAR::Packer et mes soucis n'ont pas changé.
    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
    $exe->update( 
    	 info =>  
    	[
    		'CompanyName=My company',
    	#	'FileDescription=My description',	# <---------Problem
    		'FileVersion=1.2.3.4',
    		'InternalName=Internal name',
    	#	'LegalCopyright=Legal Copyright',	# <---------Problem
    		'OriginalFilename=Original File',
    		'ProductVersion=5.6.7.8',
    	#	'Comments=My comments',				# <---------Problem
    	#	'LegalTrademarks=Legal Trademarks', # <---------Problem
    	#	'ProductName=Product name',			# <---------Problem
    	]
    );
    Les attributs commentés sont ceux qui ne fonctionnent pas. Cela détériore l'exe et on a le message suivant par la suite : Long length at E:/Strawberry/perl/site/lib/Win32/Exe/Resource/Version.pm line 113.

  11. #11
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bon, pour l'insertion d'une .ico, même verdict. Cela ne fonctionne pas. Pas d'erreur, mais l'icône n'est pas remplacée. on ne la voit que lorsque l'on fait propriété de l'exe.

  12. #12
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je n'ai mis à jour aucun module (ni Win32::Exe, ni Par::Packer), pourtant, depuis hier, je ne peux plus du tout éditer les propriétés de l'exécutable avec la méthode update de Win32::Exe (que ce soit l'icône ou un champ texte) => l'exécutable est corrompu et l'icône devient incorrecte (ni celle initialement ajoutée par Par::Packer, ni celle que je tente d'ajouter quand c'est le cas). Je n'y comprend plus rien... je pense que je vais devoir "rebooter" mon PC a défaut de le "Démarabooter"
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  13. #13
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut

  14. #14
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Bon, j'ai finalement réussi à obtenir ce que je souhaitais : ajouter une icone à mon exécutable Par::Packer.
    Par contre, impossible de mettre à jour l'une quelconque des autres propriétés de l'exécutable (y compris celles qui fonctionnent pour toi, Djibrill, et alors même que j'ai vu fonctionner plusieurs fois la mise à jour de FileDescription et FileVersion).
    Pour obtenir la bonne image pour mon icône, j'ai sauvé l'image courante comme je l'indique dans mon message précédent, je modifie les images sous Gimp et j'exporte au format .ico avec les paramètres suivants pour les 4 images : 8bpp, 256 couleurs (par défaut, elles n'étaient pas toutes positionnées ainsi).

    Avec cette manipulation, je n'ai plus l'erreur de signature, et l'exécutable fonctionne.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  15. #15
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Pour moi, rien à faire, l'ico ne donne rien, même avec gimp.

  16. #16
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je t'envoie mon fichier icône qui fonctionne pour essayer chez toi ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  17. #17
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    OK, je veux bien.

    Sinon, je suis parti d'un PNG que j'ai converti en ico sous Gimp via export 8pp 256 slots.

  18. #18
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Envoyé par email
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  19. #19
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Bon, j'ai vu d'après ton retour par mail que cela fonctionne aussi chez toi. Tout réside donc dans le format du fichier .ico

    Je peux marquer ce sujet en résolu ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  20. #20
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Euh non, cela ne fonctionne pas chez moi, je t'ai envoyé l'exe. Tu vois bien qu'il a toujours l'icône de TK.

Discussions similaires

  1. Probleme de compilation PAR-PACKER avec module DBI
    Par vindkald dans le forum Modules
    Réponses: 3
    Dernier message: 01/04/2011, 10h45
  2. [debutante]probleme d'ajout d'icone
    Par lucky31 dans le forum JBuilder
    Réponses: 0
    Dernier message: 30/11/2007, 16h12
  3. Probleme d'appel des jsp(avec balise struts) par ajax
    Par edogawa dans le forum Struts 1
    Réponses: 1
    Dernier message: 23/08/2007, 23h14
  4. Probleme compilation avec PAR
    Par Hide dans le forum Modules
    Réponses: 2
    Dernier message: 14/01/2006, 13h05

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