提取图标的更好方式是什么?

3

我已经创建了一个资源管理器窗口,在加载时扫描目录以查找文件类型等。当首次加载时,我使用

internal static extern uint ExtractIconEx(string szFileName, uint nIconIndex, IntPtr[] phiconLarge, IntPtr[] phiconSmall, uint nIcons);

并且

internal static unsafe extern int DestroyIcon(IntPtr hIcon);

我希望能够扫描当前注册的图标并将其与我使用的文件关联起来。在我的机器上,它运行得很好,但在其他机器上运行时,我会收到低资源错误的提示。 因此,我的问题是什么是更好的实践方法?按照我现在的方式加载所有内容,还是每次需要枚举目录以查找文件类型并进行关联。


1
你为什么认为图标是你资源问题的根源?你的程序加载了多少个图标?它释放了多少个?你能展示相关的代码吗? - Martyn Lovell
1个回答

1

作为另一种选择,您可以使用system.drawing来完成这个任务。

var icon = System.Drawing.Icon.ExtractAssociatedIcon(@"c:\xxx\some.file");

(您需要调整此内容以适应小的外壳尺寸)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接