我可以以某种方式使用操作系统中的文件类型图像并将其显示在我的应用程序中吗?
如果您知道所需图标的文件的文件名,则可以使用ExtractAssociatedIcon http://msdn.microsoft.com/en-us/library/system.drawing.icon.extractassociatedicon.aspx为此目的而发挥作用。例如
Icon ico = Icon.ExtractAssociatedIcon(@"C:\WINDOWS\system32\notepad.exe");
但这种方法有一个问题。根据其文档,
当 ExtractAssociatedIcon 与位图一起使用时,如果运行应用程序的系统具有导致位图文件显示为缩略图的注册表设置,则可能会返回缩略图而不是图标。
我发现的另一件事是此方法仅提取 32x32 像素的图标。
See System.Drawing.Icon.ExtractAssociatedIcon (MSDN) http://msdn.microsoft.com/en-us/library/system.drawing.icon.extractassociatedicon.aspx了解如何使用此方法的更多信息。
对于更强大的图标提取器,我建议您查看OSIcon http://www.codeproject.com/KB/system/OSIcon.aspxCodeProject 上的项目。
它允许您使用文件名获取任何文件的关联图标or扩大。
下面是执行此操作的示例代码:
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 http://www.codeproject.com/KB/system/OSIcon.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)