我创建了一个资源管理器窗口,在第一次加载时加载文件类型等时扫描目录,我使用
internal static extern uint ExtractIconEx(string szFileName, uint nIconIndex, IntPtr[] phiconLarge, IntPtr[] phiconSmall, uint nIcons);
和
internal static unsafe extern int DestroyIcon(IntPtr hIcon);
扫描当前注册的图标,然后我将它们与使用的文件相关联。它在我的机器上工作正常但是当我在其他人上运行时,我得到一个低资源错误。 所以我的问题是什么是更好的做法?按照我的方式,加载它们,或每次我需要枚举一个目录来查找文件类型并关联它。
答案 0 :(得分:1)
作为替代方案,您可以使用system.drawing
执行此操作var icon = System.Drawing.Icon.ExtractAssociatedIcon(@"c:\xxx\some.file");
(你需要为小壳尺寸调整大小)