[R] Changer l'icône d'un fichier après sa compilation.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

[R] Changer l'icône d'un fichier après sa compilation.

#1

Message par SagePourpre »

re-bonjour.

Y'a t-il possibilité de changer l'icône de mon fichier autoit compilé pour l'icône d'un autre fichier .exe définit lors de l'exécution de mon script ?

Je m'explique. J'ai un script qui lance une application et je voudrais, une fois que l'application est définie, qu'il récupère l'icône de mon application à lancer pour que mon "msn launcher" (c'est un exemple) utilise l'icône de msn afin que, si je crée un raccourci de mon application que l'icône soit celle du fichier à lancer et non pas l'icône de autoit.

Je cherche une solution simple, si elle existe, pour réaliser celà.
La seule que j'ai trouvé serait d'utiliser autoit wrapper et assigner une
icône quelconque à mon script qui serait remplacée, une fois le script exécuté,
par l'icône du .exe ciblé (extraite du .exe au moyen d'une tierce application )
Cette solution manque d'élégance et de transparence. Je me demandais s'il n'y avait
pas un moyen plus simple d'y parvenir (par le biais d'une ligne de commande par exemple)

Si vous avez une piste, je suis preneur. :)
Modifié en dernier par SagePourpre le ven. 28 nov. 2008 13:05, modifié 1 fois.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Changer l'icône d'un fichier après sa compilation.

#2

Message par Tlem »

Je ne vois vraiment pas (malgré vos explications) l'intérêt de changer l'icône d'un script compilé après son lancement.

Lorsque vous compilé un script, vous savez à quoi il sert donc lors de ça compilation vous y mettez un icône évocateur.
Si l'icône change en fonction de certaines choses, il sera moins facile de le retrouver et cela risque d'être plus perturbateur qu'autre chose...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [...] Changer l'icône d'un fichier après sa compilation.

#3

Message par SagePourpre »

Tlem a écrit :Je ne vois vraiment pas (malgré vos explications) l'intérêt de changer l'icône d'un script compilé après son lancement.

Lorsque vous compilé un script, vous savez à quoi il sert donc lors de ça compilation vous y mettez un icône évocateur.
Si l'icône change en fonction de certaines choses, il sera moins facile de le retrouver et cela risque d'être plus perturbateur qu'autre chose...
L'icône ne change qu'une seule fois. Elle passe d'un état neutre à celui de l'application désigné à la première exécution du script.

Par exemple, si je veux créer un lanceur pour msn messenger, je n'aurais qu'à mettre le lanceur dans le dossier de msn puis, l'exécuter.

Une gui me demande vers quel fichier pointé et je désigne msn messenger.exe

Par la suite, je n'utiliserais plus jamais directement msn messenger.exe. Je passerais plutôt par mon lanceur à tout les coups. Donc, si je veux crée un raccourci de lanceur_msn.exe sur le bureau, je voudrais ne pas avoir l'icône d'autoit mais plutôt celle de msn.


Comme le lanceur est configurable pour n'importe quelles applications, je ne veux pas le recompiler à chaque fois avec des icônes différentes.

Je peux en avoir un pour msn, un pour un jeu quelconque, un pour un programme tiers.

En gros, si je ne peux pas adapter l'icône de ce lanceur au programme auquel je l'associe, cela devient vite peu esthétique et moins intuitif lorsque je me retrouve avec 10 raccourcis de mes 10 lanceurs sur le bureau.

Je ne sais pas si c'est un peu plus clair...
Voilà à quoi ressemble mon code pour l'instant.
La gui va peut-être vous permettre de visualiser ce que je veux dire

Attention, c'est seulement la partie graphique du code (qu'on ne verra que
lors de la première utilisation du script )

► Afficher le texte
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Changer l'icône d'un fichier après sa compilation.

#4

Message par Tlem »

Je ne vois toujours pas l'intérêt de modifier l'icône du lanceur mais bon ...

L'icône d'un exécutable est stocké dans ses ressources.
Vous ne pouvez le changer qu'en utilisant un utilitaire spécifique (Reshacker par exemple) ou en recompilant votre exécutable.

Il me semble qu'il est possible d'automatiser par ligne de commande l'utilisation de Reshacker pour lui faire effectuer une action, mais de tête je ne m'en souvient plus (il faudra effectuer des recherches).

D'un point de vue pratique, je trouve votre choix pas très logique.
Votre lanceur d'après ce que vous dite est universel, donc il devrait garder son icône d'origine de manière à bien le repérer.
C'est plutôt du coté des raccourcis que vous devriez regarder.

L'idée serait de faire un Drag & Drop de l'exécutable à lancer, sur le lanceur, qui créera un raccourci à l'endroit que vous déterminerez avec comme icône celui de l'exécutable du Drag & Drop. L'avantage est que votre exécutable n'est jamais modifié et que cette solution reste universelle.
Par contre effectivement vous allez vous retrouver avec une multitude de lanceur qui même si le code n'est pas très complexe feront au bas mot entre 500 et 600 Ko. :(

Autre idée :
Placez votre lanceur dans le path de Windows (ou n'importe ou en fait), puis rajoutez un menu contextuel sur les programmes exécutables.
Lorsque vous voulez rajouter un exe au lanceur, un clic de droite puis ajouter au lanceur permettra de rajouter ce programme dans un fichier .ini général et créera un raccourci quelque part avec l'icône de l'exe voir même une ligne supplémentaire dans un menu du Systray (a l'image des lanceurs connus).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Changer l'icône d'un fichier après sa compilation.

#5

Message par SagePourpre »

hmmm... je vais regarder du côté de reshacker alors.
J'avoue que l'idée d'avoir un lanceur "universel" externe dans lequel
je peux glisser mes exécutables a un certain charme mais présentement,
ma vision des choses, l'objectif principal de cette application sera pour les jeux
d'installé sur mon pc. Comme j'ai "portabiliser" tous mes jeux, c'est du copier et jouer sans
installation (seulement un *.reg à ajouter). Le seul problème auquel je me heurte encore
est celui des sauvegardes de certains jeux, qui sont effectué dans un autre emplacement
que celui du jeu. Voilà pourquoi je crée ce lanceur qui s'occupera de récupérer automatiquement
les sauvegardes ou de les envoyer dans l'emplacement par défaut si aucune n'est trouvée.
En bref, je veux que chaque jeux soit contenu à 100% dans son dossier et ne plus jamais me soucier de penser à mes sauvegardes de jeux avant un "formatage/backup" mensuel.

Comme je passe par un lanceur, je vais surement y ajouter des commandes
spéciales (ex: tenir CTRL enfoncé lancera la bande-annonce du jeu, tenier ALT enfoncé
pour lancer le sit web de l'éditeur à la page des patch, etc)


Mon code parlera de lui-même, si tôt que je lui aurai donné vie.
À la vue de tous je l'afficherai et l'étalerai sur toute sa longueur,
afin que vous puissiez scruter chaque repli d'un merveilleux script
qui a tout d'abord grandi entre mes mains généreuses.

Son baume protecteur évitera à tous d'avoir le coeur meurtri
après un formatage/backup en préservant le personnage
niveau 37 / barde-moine de la confrérie des lames brisées /
épée + 3 vorpale tueuse de gnomes / un tapir géant en guise de monture.

J'ai la vision d'un monde meilleur, un monde où les sauvegardes de jeux sont
"sauvegardées" peu importe les torrents érodant les données sur le disque dur
principal.....

Bientôt disponible ...



*CLAP* *CLAP* *CLAP* *CLAP*
Modifié en dernier par SagePourpre le sam. 13 mars 2010 17:04, modifié 1 fois.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Changer l'icône d'un fichier après sa compilation.

#6

Message par Tlem »

Mes aïeux, quelle preste verve. :shock:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [R] Changer l'icône d'un fichier après sa compilation.

#7

Message par SagePourpre »

Finalement. Le plus simple, et de loin, est d'utiliser un raccourci dans le dossier cible
qui a le nom de l'application à lancer ainsi que son icône mais qui en fait, lance le launcher plutôt que le jeu. Cette opération est réalisable avec filecreateshortcut() sans utiliser de programme tiers (resource hacker).


ex : Msn.exe (exe ciblé par le launcher)
_launcher.exe (lance msn.exe en vérifiant tout d'abord quelques paramètres)
Msn.exe.lnk (Raccourci possédant le chemin cible de _launcher.exe mais les caractéristiques
(icône, nom) de msn.exe)


Voilà ... entièrement résolu pour les besoins de la cause. *s'incline en guise de salut et disparaît dans un nuage de fumée*
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre