Obtenir uen icone d'un fichier avec l'api windows, possible?

JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005 - 19 juin 2003 à 20:14
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 19 juin 2003 à 23:35
Bona alors j'ai cherche dans la base de registre et j'ai pas trouvé ou sont stoqué les infos pour avoir les icones des different types de fichiers;(

est ce que qqn sait juste comment avoir l'icone d'une application (exe) ?

thx

JackosKing For EvEr

12 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 juin 2003 à 20:27
FindResource() dans msdn.
BruNews, ciao...
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
19 juin 2003 à 21:22
j'ai regarder mais j'ai rien compris:(
ce serait pour extraire instantannément les icones de plusieurs exe, et je sais pas si ya moyen de le faire rapidement:(
JackosKing For EvEr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 juin 2003 à 21:36
il n'y a rien de rapide en win32 au niveau ecriture si on n'a pas une longue pratique, faudra t'habituer a fouiller msdn bien longtemps et faire beaucoup de tests.
Regarde EnumResourceTypes() et ta func de callback devra verifier la presence RT_GROUP_ICON et ensuite le lister.
Il faut lire tout ce qui est "Resources reference".
BruNews, ciao...
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
19 juin 2003 à 22:37
T'es sur qu'il n'existe pas une fonction pour obtenir directement l'icone d'un fichier, parce que sinon je suis obligé de trafiquer la base de registre:(

JackosKing For EvEr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 juin 2003 à 22:41
certains sont indiques mais peu. De + ils sont inscrits en index de la RT_GROUP_ICON.
BruNews, ciao...
0
cs_payen Messages postés 252 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 1 mai 2005
19 juin 2003 à 22:50
tu peux toujours extraire l'icone avec ca :http://www.vbfrance.com/article.aspx?Val=5651
je sais pas si ca va t'aider ...
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
19 juin 2003 à 23:13
thx je pense avoir trouiver un code simple (source de XFileProperties_demo.zip)

ce serait:
SHFILEINFO sfi;
ZeroMemory(&sfi, sizeof(SHFILEINFO));
SHGetFileInfo(m_strFile, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(SHFILEINFO),
SHGFI_USEFILEATTRIBUTES | SHGFI_ICON);
HICON hIcon = sfi.hIcon;

if (hIcon)
m_Icon.SetIcon(hIcon);

vla je vais voir cela, il y a pas mal de fonctions que je ne connais pas:'(
JackosKing For EvEr
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
19 juin 2003 à 23:24
Bon voilà la fonction exacte:

HICON IconFile( char *pFile )
{
SHFILEINFO sfi;
ZeroMemory(&sfi, sizeof(SHFILEINFO));
SHGetFileInfo(m_strFile, FILE_ATTRIBUTE_NORMAL, &sfi,sizeof(SHFILEINFO),SHGFI_USEFILEATTRIBUTES | SHGFI_ICON);
return sfi.hIcon;
}

question: le ZeroMemory est necessaire? normalement le sfi devrai etre nul puisqu'il est allouer sur le stack ???

JackosKing For EvEr
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
19 juin 2003 à 23:25
heu oups faut remplace m_strFile (de typ CString par l'argument de la fonction:)
JackosKing For EvEr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 juin 2003 à 23:28
le contraire, une variable reservee sur stack a une valeur initiale indeterminee car elle aura la valeur de ce qu'il y avait precedemment a ce emplacement.
BruNews, ciao...
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
19 juin 2003 à 23:30
Ok:)

heu mais dans tous les cas apres la structure va etre ecrasé donc c'est pas utilie non?

JackosKing For EvEr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 juin 2003 à 23:35
mais si, sert a placer les valeurs sinon la fonction qui va analyser la structure peut considerer que tu as mis ces valeurs expres. En plus il est rare que la fonction remplisse tous les champs, alors par principe initialise toujours.
BruNews, ciao...
0
Rejoignez-nous