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

发布于 2024-08-19 09:50:51 字数 74 浏览 3 评论 0原文

我正在寻找.Net 中的可执行文件的应用程序图标。我该怎么做?我想我必须以某种方式查询其资源,但我对任何一般情况的解决方案持开放态度。

I'm looking to get an executable's application icon in .Net. How can I do this? I'm thinking I'll have to query its resources, some how, but I'm open to any general-case solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寄风 2024-08-26 09:50:51

来自硬路径:

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

From a hard-path:

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

From a resource 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);

From:

C# Extract icons and system icons

祁梦 2024-08-26 09:50:51

以下应该有效。它还会提取其他文件类型的图标(即 .txt 的一张白纸),但它不会提取嵌入的缩略图(因为这些缩略图是由 shell 扩展注入的)。

icon = Icon.ExtractAssociatedIcon(文件名);

The following should work. It also pulls the icon for other file types (i.e. a white sheet of paper for .txt), though it will not pull embedded thumbnails (since those are injected by shell extensions).

icon = Icon.ExtractAssociatedIcon(filename);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文