如何在.Net中获取可执行文件的图标?

时间:2010-01-26 18:51:10

标签: .net windows icons

我希望在.Net中获得可执行文件的应用程序图标。我怎样才能做到这一点?我想我将不得不查询其资源,一些如何,但我对任何一般案例解决方案持开放态度。

2 个答案:

答案 0 :(得分:3)

从艰难的道路:

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

来自资源dll:

// 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);

自:

C# Extract icons and system icons

答案 1 :(得分:1)

以下内容应该有效。它还会拉出其他文件类型的图标(即.txt的白纸),但它不会拉动嵌入的缩略图(因为它们是由shell扩展注入的)。

icon = Icon.ExtractAssociatedIcon(filename);