【问题标题】:Use the file types image of the operating system in C# .NET在 C# .NET 中使用操作系统的文件类型映像
【发布时间】:2011-03-02 07:54:28
【问题描述】:

我能否以某种方式使用操作系统中的文件类型图像并将它们显示在我的应用程序中?

【问题讨论】:

标签: c# .net windows icons file-type


【解决方案1】:

如果您知道所需图标的文件的文件名,则可以为此目的使用ExtractAssociatedIcon 函数。例如

Icon ico = Icon.ExtractAssociatedIcon(@"C:\WINDOWS\system32\notepad.exe");

不过,这种方法有一个问题。根据其文档,

当 ExtractAssociatedIcon 与位图一起使用时,如果运行应用程序的系统具有导致位图文件显示为缩略图的注册表设置,则可能会返回缩略图而不是图标。

我发现的另一件事是这种方法只提取 32x32 像素的图标。

有关如何使用此方法的更多信息,请参阅System.Drawing.Icon.ExtractAssociatedIcon (MSDN)


对于更强大的图标提取器,我建议您查看 CodeProject 上的 OSIcon 项目。
它允许您使用文件名扩展名获取任何文件的关联图标。
这是执行此操作的示例代码:

OSIcon.WinAPI.Shell32.SHFILEINFO shfi = new Shell32.SHFILEINFO();
Icon icon = OSIcon.IconReader.GetFileIcon(".png", IconReader.IconSize.Large, false, ref shfi);

这是项目的链接:http://www.codeproject.com/KB/system/OSIcon.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 2011-02-23
    相关资源
    最近更新 更多