Icones fichiers windows vb.net 2003

Résolu
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 - 1 mars 2006 à 15:56
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 - 1 mars 2006 à 17:28
Bonjour,

Comment peut-on récupérer les icones des fichiers (utilisées par l'explorer) et les intégrés à un listview en cours d'exécution ?

4 réponses

Utilisateur anonyme
1 mars 2006 à 17:01
Voilà pourquoi il faut auusi toujours présiser le langage et sa version dans la question.
Pour vs2003, ceci devrais marcher:

Imports System.Runtime.InteropServices

[...]

Private Declare Function ShGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal Path As String, ByVal DwAttributes As Integer, ByRef ShInfo As ShFileInfo, ByVal SizeFileInfo As Integer, ByVal Flags As Integer) As IntPtr
Private Const ShGetFileInfo_Icon As Short = &H100S
<Runtime.InteropServices.StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)> Public Structure ShFileInfo
Dim HIcon As IntPtr
Dim Icon As Integer
Dim Attributes As Integer
<Runtime.InteropServices.MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public DisplayName As String
<Runtime.InteropServices.MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> Public TypeName As String
End Structure
Public Enum IconSize As Short
Small = &H1S
Large = &H0S
End Enum
Public Function GetIcon(ByVal FileName As String, ByVal Size As IconSize) As System.Drawing.Icon
Try
Dim ShInfo As New ShFileInfo
Call ShGetFileInfo(FileName, 0, ShInfo, Marshal.SizeOf(ShInfo), ShGetFileInfo_Icon Or Size)
Return System.Drawing.Icon.FromHandle(ShInfo.HIcon)
Catch
Return Nothing
End Try
End Function

[...]

'Pour appeller la fonction:
Dim Ico As System.Drawing.Icon = GetIcon("C:\WINDOWS\explorer.exe", IconSize.Small)

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
3
Utilisateur anonyme
1 mars 2006 à 16:34
Salut,

ExtractAssociatedIcon de retourne l'icône associer au fichier.
Par example:
Dim Ico As System.Drawing.Icon = System.Drawing.Icon.ExtractAssociatedIcon("C:\WINDOWS\explorer.exe")

Ensuite, tu ajoute l'icône à l'image list de ta listview et tu crée un élément avec cette image.

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 mars 2006 à 16:45
Merci de ta réponse
mais
J'ai bien spécifié vb.net 2003 pas 2005
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 mars 2006 à 17:28
Impeccable merci

ça ralenti pas mal les traitements snif...
0
Rejoignez-nous