[R] Recupérer l'icone d'une ressource
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
[R] Recupérer l'icone d'une ressource
Bonjour,
j'aimerais savoir s'il était possible de récupérer l'icone d'une ressource (dll, exe)
et de la sauvegarder dans un fichier.
Merci.
j'aimerais savoir s'il était possible de récupérer l'icone d'une ressource (dll, exe)
et de la sauvegarder dans un fichier.
Merci.
Modifié en dernier par TommyDDR le ven. 28 janv. 2011 10:29, modifié 1 fois.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- mimione
- Niveau 4

- Messages : 91
- Enregistré le : mer. 30 avr. 2008 18:11
- Localisation : Bretagne
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
Bonjour
Avec AutoIt, sûrement (on peut TOUT faire avec AutoIt ! ), mais je ne sais pas faire.
Sinon, avec "ResourcesExtract" de l'excellllllente Liberkey, ça le fait. (on peut extraire plein de choses).
Avec AutoIt, sûrement (on peut TOUT faire avec AutoIt ! ), mais je ne sais pas faire.
Sinon, avec "ResourcesExtract" de l'excellllllente Liberkey, ça le fait. (on peut extraire plein de choses).
Je ne suis pas toujours de mon avis....
--------------------------------------------
Des malheurs évités le bonheur se compose.
--------------------------------------------
Des malheurs évités le bonheur se compose.
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
Au temps pour moi, je me suis mal exprimé.
Comment extraire une ressource d'une dll, exe, grâce à du code autoit.
J'aimerai pouvoir récupérer dans une variable l'image (ou un pointeur vers celle-ci) pour pouvoir l'utiliser dans un bon vieux FileWrite().
Comment extraire une ressource d'une dll, exe, grâce à du code autoit.
J'aimerai pouvoir récupérer dans une variable l'image (ou un pointeur vers celle-ci) pour pouvoir l'utiliser dans un bon vieux FileWrite().
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
Étrange, cette question à déjà fait l'objet d'une demande récemment ...
J'y ai indiqué l'utilisation d'un UDF ...
J'y ai indiqué l'utilisation d'un UDF ...
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é".
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é".
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
J'ai en effet jeté un œil (même deux) du coté de "_ResourceGet()"
Mais pas moyens de récupérer une image ou un handle d'image d'une ressource dll ou exe.
:$
Si vous pouviez me donner un exemple comme :
Enregistrer la 1ere icône de shell32.dll dans test.bmp.
Je vous en serai reconnaissant.
Mais pas moyens de récupérer une image ou un handle d'image d'une ressource dll ou exe.
:$
Si vous pouviez me donner un exemple comme :
Enregistrer la 1ere icône de shell32.dll dans test.bmp.
Je vous en serai reconnaissant.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
Les exemples fournit ici ne vous suffise pas ?
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é".
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é".
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
J'ai essayé de les adaptés mais je ne vois guerre où entrer le chemin de la DLL
J'ai tenté :
mais sans succès
J'ai tenté :
Code : Tout sélectionner
_ResourceGet(@SysDir & "\shell32.dll", $RT_ICON, 0, 1)3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
En reprenant les éléments de l'exemple, cela nous donne :
Autre solution.
Modifiez Resources.au3 et remplacez dans la fonction _ResourceSaveToFile la ligne :parEnsuite ceci suffira dans votre code :
Code : Tout sélectionner
#include "resources.au3"
#Include <GDIPlus.au3>
$hImage = _ResourceGetAsImage("#14355", $RT_BITMAP, @SystemDir & "\shell32.dll")
_GDIPlus_ImageSaveToFile($hImage, "MonImage.bmp")
_GDIPlus_ImageDispose($hImage)Modifiez Resources.au3 et remplacez dans la fonction _ResourceSaveToFile la ligne :
Code : Tout sélectionner
$hImage = _ResourceGetAsImage($ResName, $ResType)Code : Tout sélectionner
$hImage = _ResourceGetAsImage($ResName, $ResType, $DLL)Code : Tout sélectionner
_ResourceSaveToFile("Test2.bmp", "#14355", $RT_BITMAP, 0, 0, @SystemDir & "\shell32.dll")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é".
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é".
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
En effet, $DLL devait contenir le chemin de la DLL je pensais qu'il servait à dire qu'on utilisait une DLL pour le 1er parametre...
Merci !
(Je fais quelques tests et je passe en résolu si tout se passe bien.)
1) Pas moyen de sauver une icone (BMP : OK, ICO : NON)
2) L'utilisation des #xxx pour choisir l'icone n'est pas assez précis, en effet, pour un exe de windows (pris au hazard dans le dossier system), c'est le #1, pour un exe autoit, c'est le #12
Le GUICtrlSetImage était pourtant parfait, la 1ere icone correspond à l'icone de l'exe (mais la fonction ne permet pas de récupérer quoi que ce soit qui permetterai de sauvegarder l'icon.
Merci !
1) Pas moyen de sauver une icone (BMP : OK, ICO : NON)
2) L'utilisation des #xxx pour choisir l'icone n'est pas assez précis, en effet, pour un exe de windows (pris au hazard dans le dossier system), c'est le #1, pour un exe autoit, c'est le #12
Le GUICtrlSetImage était pourtant parfait, la 1ere icone correspond à l'icone de l'exe (mais la fonction ne permet pas de récupérer quoi que ce soit qui permetterai de sauvegarder l'icon.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
Voila un code de base utilisant la 1ere icone de shell32.dll
J'aimerai qu'a partir de là, je puisse enregistrer l'icone dans un fichier.
► Afficher le texte
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
Voilà un début de piste : http://www.autoitscript.com/forum/topic ... _p__720443
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é".
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é".
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Recupérer l'icone d'une ressource
Merci beaucoup pour cette piste Tlem, cela m'a permi d'arranger le code et d'arriver à mes fins.
Voila comment sortir une icone d'une DLL (J'ai coupé la fonction en 2 parties, l'une récupère la donnée et l'autre l'écrit dans le fichier)
Résolu.
Voila comment sortir une icone d'une DLL (J'ai coupé la fonction en 2 parties, l'une récupère la donnée et l'autre l'écrit dans le fichier)
► Afficher le texte
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [R] Recupérer l'icone d'une ressource
Je rajoute une fonction, celle pour extraire une icone d'un exe.
► Afficher le texte
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
