我希望在.Net中获得可执行文件的应用程序图标。我怎样才能做到这一点?我想我将不得不查询其资源,一些如何,但我对任何一般案例解决方案持开放态度。
答案 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);
自:
答案 1 :(得分:1)
以下内容应该有效。它还会拉出其他文件类型的图标(即.txt的白纸),但它不会拉动嵌入的缩略图(因为它们是由shell扩展注入的)。
icon = Icon.ExtractAssociatedIcon(filename);