warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009
-
1 févr. 2006 à 16:41
Utilisateur anonyme -
1 févr. 2006 à 21:40
je voudrai pouvoir acceder et afficher dans ma form l'icone d'un fichier... pas un executable mais par ex un fichier txt... si vous avez word vous aurez donc une icone particuliere pour votre fichier txt... je suppose que cela est geré dans le shell
comment donc recuperer cette icone pour l'afficher?
warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009 1 févr. 2006 à 17:25
pourtant ça ne marche pas
mais je pense que je m'y prend mal
j'ai mis dans mon datalistview une collone definie pour supporter les images
et je fais list.Icon = Icon.ExtractAssociatedIcon(FileName[i]);
mais j'ai la petite image qui montre que l'image n'a pas ete trouvé dans la collone de mon datalistview
warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009 1 févr. 2006 à 18:13
ben en fait je savais absolument pas utiliser le datagridview. je decouvre... donc pour decrire mon erreur je devrais faire un roman
ou alors je resume en quelques mots: penser a jeter un coup d'oeil a la msdn avant de faire n'importe quoi....
sinon question quand meme... les icones obtenues sont assez grosseS. il a t il possibilités de les reduires? j'obtient du 32x32 et je veux du 16x16 ;(
Tu ne peut pas choisir la taille avec Icon.ExtractAssociatedIcon.
Tu peut utiliser la méthode SHGetFileInfo comme à dit coq:
using System.Runtime.InteropServices;
[...]
[DllImport("shell32.dll", EntryPoint = "SHGetFileInfo")]
private static extern int SHGetFileInfoA(string pszPath, int dwFileAttributes, ref SHFILEINFO psfi, int cbFileInfo, int uFlags);
private const short SHGFI_ICON = 0x000000100;
[StructLayout(LayoutKind.Sequential)]
private struct SHFILEINFO
{
public IntPtr HIcon;
public int Icon;
public int Attributes;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string DisplayName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
public string TypeName;
}
public enum IconSize : short { Small 0x000000001, Large 0x000000000, }
public System.Drawing.Icon GetSmallIcon(string FileName, IconSize Size)
{
try
{
SHFILEINFO ShInfo = new SHFILEINFO();
SHGetFileInfoA(FileName, 0, ref ShInfo, (int)System.Runtime.InteropServices.Marshal.SizeOf(ShInfo), SHGFI_ICON | (short)Size);
return System.Drawing.Icon.FromHandle(ShInfo.HIcon);
}
catch
{
return null;
}
}
pour appeler la fonction:
Icon ico = GetSmallIcon(FileName[i], IconSize.Small)
Kenji
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.