cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 2014
-
1 mars 2006 à 15:56
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 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 ?
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.
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.