2010-01-26 51 views
4

我正在寻找在.Net中的可执行文件的应用程序图标。我怎样才能做到这一点?我想我将不得不查询其资源,一些如何,但我可以接受任何一般情况下的解决方案。如何在.Net中获得可执行文件的图标?

+0

这是从另一个应用 – ChrisF 2010-01-26 18:52:02

+0

是的。我想通过它从我正在写的应用程序的路径检索可执行文件的图标。 – 2010-01-26 18:53:36

回答

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

以下应该工作。它还会为其他文件类型(即.txt的白纸)拉取图标,尽管它不会拉取嵌入的缩略图(因为这些文件是通过shell扩展注入的)。

icon = Icon.ExtractAssociatedIcon(filename);

相关问题