首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VIsta中的图标提取

VIsta中的图标提取
EN

Stack Overflow用户
提问于 2009-08-03 12:43:09
回答 3查看 529关注 0票数 1

用于解压我正在使用的特殊文件夹图标

代码语言:javascript
复制
ExtractIconEx(Environment.SystemDirectory + "\\shell32.dll",ncIconIndex, handlesIconLarge, handlesIconSmall, 1);

在这里,im显式传递特殊文件夹的nIconIndex,如MyDocs,MyPictures ..etc,它在XP中工作正常,但是在Vista中它没有检索正确的图标..there它检索黄色文件夹icons..it不应该是这种情况。有没有人能帮我一下..

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-03 17:21:53

Vista添加了一个名为SHGetStockIconInfo的新API,但它不支持my documents。但这无关紧要,因为你应该使用的方法在XP和Vista上都有效(当用户选择自定义图标时,你当前的解决方案将不起作用,你只是在硬编码的系统dlls中查找,这可能在任何时候改变)

因此,您应该做的是,获取您感兴趣的shell文件夹(SHGetFolderPath和朋友)的路径或PIDL,并将该路径/PIDL传递给SHGetFileInfo。SHGetFileInfo可以给你一个图标句柄,或者进入系统镜像列表的索引。

我不确定这些函数的.NET等价物是什么,但您应该能够弄清楚,或者使用PInvoke

票数 1
EN

Stack Overflow用户

发布于 2009-08-03 12:46:36

查看IconLib library at codeproject

票数 1
EN

Stack Overflow用户

发布于 2009-08-03 13:11:48

我所见过的.NET (并且是用VB.NET完成的)在这方面取得成功的最好例子就是这篇文章。

http://www.codeproject.com/KB/cpp/VbNetExpTree.aspx

我的$.02是,由于COM互操作所需的级别和API的复杂性,在.NET中使用shell API是非常痛苦的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1222148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档