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

4

我想在.Net中获取可执行文件的应用程序图标。我该怎么做?我认为我需要查询它的资源,但我对任何通用解决方案都持开放态度。


这是来自另一个应用程序吗? - ChrisF
是的,我想通过路径从我正在编写的应用程序中检索可执行文件的图标。 - Mike Pateras
2个回答

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# 提取图标和系统图标


1
以下代码应该可以正常工作。它还可以提取其他文件类型的图标(例如 .txt 文件的白纸图标),但不会提取嵌入式缩略图(因为这些是由 shell 扩展注入的)。 icon = Icon.ExtractAssociatedIcon(filename);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接