Extraction d'icone

Messages postés
9
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
8 octobre 2007
- - Dernière réponse : PCPT
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
- 26 nov. 2008 à 20:07
Bonjour à tous,

J'ai un problème que je n'arrive pas a résoudre. J'aimerais extraire les icones de fichiers afin de réaliser un explorateur affichant les fichiers dans une listview.
Or toutes les sources que j'ai trouvée se servent de l'API extractIcon et drawIcon qui apparemment ne servent que pour extraire des icones a partir de .exe, .dll ou .ico ....

Si quelqu'un me trouve une solution je suis partant ;)

Merci d'avance !! DETONIO
Afficher la suite 

6 réponses

Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
9
0
Merci
Parce que pour toi les icones, on les trouve dans quel autre type de fichier ?
L'icone d'un document (.doc de word par exemple) n'est pas stocké dans le fichier .DOC lui-même,hein !!
Commenter la réponse de Kristof_Koder
Messages postés
9
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
8 octobre 2007
0
Merci
Merci de l'info ^^ (un peu ironique ...javascript:Insert_Emoticon('/imgs2/smile_blackeye.gif'); ) mais j'aimerais bien avoir la correspondance entre un type de fichier et son emplacement dans la dll associée ....
Parceque si je doit chercher toutes les extensions dans les dll de chque logiciel je suis mal barré !

Mais merci de ton aide
Commenter la réponse de Detonio
Messages postés
28
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
7 janvier 2009
0
Merci
et comment peut-on faire pour capturer dans le code les icônes de dossiers?
Commenter la réponse de binet1
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
28
0
Merci
salut,

EXTRAIRE (vraiment) :


<hr />
'    EXTRAIRE ET AFFICHER UNE ICONE D'UN FICHIER DLL,
EXE
'    http://www.codyx.org/snippet_extraire-afficher-icone-fichier-dll-exe_97.aspx#251
'    Posté par [ 278023 Gobillot ] le 01/04/2006
<hr />


Const MAX_PATH = 260
Const DI_MASK = &H1
Const
DI_IMAGE = &H2
Const DI_NORMAL = &H3
Const DI_COMPAT =
&H4
Const DI_DEFAULTSIZE = &H8

Private Declare Function
SHChangeIconDialog Lib "shell32" Alias "#62" (ByVal owner As Long, ByVal
pszFileName As String, pdwBufferSize As Long, pdwIndex As Long) As
Boolean
Private Declare Function ExtractIconEx Lib "shell32.dll" Alias
"ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long,
phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As
Long
Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long,
ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As
Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal
hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
Private Declare
Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As
Long

Private Sub ExtractIcone(Lechemin As String)
   Dim
sFileName  As String
   Dim sUnicode   As String
   Dim nIconIdx   As
Long
   Dim hSmallIcon As Long
   Dim hLargeIcon As Long
   Dim
Pos        As Long
   
   sFileName = Lechemin & String$(MAX_PATH -
Len(sFileName), 0)
   
   sUnicode = StrConv(sFileName, vbUnicode)
 

   If SHChangeIconDialog(Me.hWnd, sUnicode, 0, nIconIdx) Then
 
 
      sFileName = StrConv(sUnicode, vbFromUnicode)
      Pos =
InStr(sFileName, vbNullChar)
      If Pos Then sFileName = Left$(sFileName,
Pos - 1)
   
      If ExtractIconEx(sFileName, nIconIdx, hLargeIcon,
hSmallIcon, 1) > 0 Then
         DrawIconEx Me.hdc, 0, 8, hSmallIcon, 0,
0, 0, 0, DI_NORMAL
         DrawIconEx Me.hdc, 32, 8, hLargeIcon, 0, 0, 0, 0,
DI_NORMAL
         DestroyIcon hSmallIcon
         DestroyIcon
hLargeIcon
         End If
      End If

End Sub

Rem utilisation
   ExtractIcone
("shell32.dll")

mais je dirais plutôt DESSINER L'ASSOCIéE :
<hr />
'    DESSINER L'ICÔNE D'UN DOSSIER OU D'UN FICHIER
'    http://www.codyx.org/snippet_dessiner-icone-dossier-ou-fichier_581.aspx#1810
'    Posté par [ =401740 PCPT ] le 21/04/2008
<hr />
Private Const DI_MASK   As Long  =  &H1
Private Const DI_IMAGE  As Long = &H2
Private Const DI_NORMAL As Long = DI_MASK Or DI_IMAGE
Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As
Long
Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As
Long
Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
'   repris de
l'API-Guid
Private Sub DrawIcon(ByVal sSource As String, ByVal lDestHDC As Long, ByVal lLeft As Long, ByVal lTop
As Long)
    Dim mIcon As Long
    'Extract the associated icon
    mIcon = ExtractAssociatedIcon(App.hInstance, sSource, 2&)
    'Draw the icon on the form
    DrawIconEx lDestHDC, lLeft, lTop, mIcon, 0, 0, 0, 0, DI_NORMAL
    'remove the icon from the memory
    DestroyIcon mIcon
End Sub

'----------------------------------------------------------------
'Remarques :
'Private Sub Form_Paint()
'Call DrawIcon("D:", Me.hdc, 0,
0)
'Call DrawIcon("R:", Me.hdc, 0, 50)
'Call DrawIcon("C:\autoexec.bat",
Me.hdc, 0, 100)
'End Sub

++
<hr size ="2" width="100%" />Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Commenter la réponse de PCPT
Messages postés
28
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
7 janvier 2009
0
Merci
salut,
merci pour ce code. malheureusemetn il ne fonctionne pas en vb 2008. comment puis-je l'adapter?
merci
Commenter la réponse de binet1
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
28
0
Merci
...


<li>
Vous êtes ici : Thèmes/ [forum-VISUAL-BASIC_1.aspx Visual Basic 6] /
[theme-DIVERS_220.aspx Divers] / [theme-TRUCS-ASTUCES_242.aspx Trucs & Astuces] / Extraction d'icone
</li>

à toi de refaire le code adéquat en partant de la base VB6 fournie, dans ce cas !




<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Commenter la réponse de PCPT