2010-01-26 9 views
4

Je cherche à obtenir l'icône de l'application d'un exécutable dans .Net. Comment puis-je faire ceci? Je pense que je vais devoir interroger ses ressources, d'une certaine manière, mais je suis ouvert à toute solution générale.Comment puis-je obtenir l'icône d'un exécutable dans .Net?

+0

Est-ce de une autre application? – ChrisF

+0

Oui. Je veux récupérer l'icône d'un exécutable via son chemin à partir de l'application que j'écris. –

Répondre

3

D'un dur chemin:

Icon ico = System.Drawing.Icon.ExtractAssociatedIcon(filePath); 

D'un dll ressource:

// Process handle 
IntPtr processHandle = System.Diagnostics.Process.GetCurrentProcess().Handle; 

// DLL path 
string DLLPath = Path.Combine(Environment.SystemDirectory, "shell32.dll"); 

// Open folder icon index 
int iconIndex   = 4; 

// Extract icon 
System.IntPtr oPtr = ExtractIcon(processHandle, DLLPath, iconIndex); 

Icon oIcon = Icon.FromHandle(oPtr); 

De:

C# Extract icons and system icons

1

Ce qui suit devrait fonctionner. Il tire également l'icône pour les autres types de fichiers (c'est-à-dire une feuille de papier blanche pour .txt), bien qu'il ne tire pas les vignettes incorporées (puisque celles-ci sont injectées par des extensions shell).

icon = Icon.ExtractAssociatedIcon(filename);

Questions connexes