1

我已经阅读了 Shell 使用的 Get File Icon和其他类似的帖子——并且已经使用 SHFileInfo 来获取任何给定扩展名的关联图标,效果很好。

但是,Outlook 对邮件和约会项目使用“.msg”(如果您将电子邮件和事件拖到桌面上,则生成的图标会有所不同)。我注意到,如果我使用注册表方法,标准信封图标位于 C:\WINDOWS\Installer{90120000-0011-0000-0000-0000000FF1CE}\outicon.exe 的索引 17(在运行 Outlook 2007 的 XP 机器上) -而且,很方便,约会图标位于索引 18。我可以在提取图标时硬编码 18,但这听起来很脆弱。

给定电子邮件或约会的文件名(但不是实际文件),并且知道它是电子邮件或约会,是否有人知道如何通过外壳或注册表获得正确的图标?

当然,如果我手头有实际文件,我可以只使用 Icon.ExtractAssociatedIcon,但在我正在使用的系统中,我们显示了存储在其他地方的文件列表,并且事先下载每个文件是不可能的.

4

1 回答 1

1

如果您知道什么时候是约会或邮件,您不能将“appointment.ics”传递到您的 SHFileInfo 函数中并获得正确的图标吗?马库斯

于 2010-02-24T19:42:28.833 回答