日期:2014-05-18  浏览次数:20864 次

「玩一玩」获取各文件类型在系统中注册的图标(即和后缀关联的图标)
睡前一玩

-----睡前的分割线-----

老规矩,源码 DEMO 在前

发帖就得有诚意,发资源就不能收分

点我下载 DEMO

点我下载源码(一分不要)


注:程序里用到的 Windows API 是看了网上匿名人士的作品拿来应用的,

向所有无私奉献的人们致敬!





一般涉及到文件列表的程序,为了简单,都是用的普通图标,就像这样

(只是举例子,不针对任何人物、社团或软件)



有点凄凉吧? 其实我们心里最想要的,难道不是这样的吗?



所以可以用到 Windows 的一个 API


C# code
[DllImport("Shell32.dll")]
static extern int SHGetFileInfo(
  string pszPath,
  uint dwFileAttributes,
  ref   SHFILEINFO psfi,
  uint cbFileInfo,
  uint uFlags
);


具体内容还是自己看代码吧,核心代码也就 20 来行,这里给大家一个效果图



点击每个图标,可以把图标复制到剪贴板里面



打完收功。。




------解决方案--------------------
很有意思,以前没有想过类似问题
------解决方案--------------------
探讨

主要 Windows API 过于浩瀚。。真的。。太浩瀚了。。

------解决方案--------------------
我感觉你不是在发东西你是在往那个论坛拉人,那个论坛真烦人,网址也常常换(我记得我上学的时候注册过,后来网换了一时没找到,不用了,再后来又发现改了了名字,不过不想用了,现在不注册还不让看)也不让下,真烦人,发了也看不到,只能听你叫叫罢了,
------解决方案--------------------
探讨

野比有么,有的话求一个。或者告诉我方法怎么学也行。
非常想学啊。

------解决方案--------------------
感觉到楼主老强那种,我是从另一篇过来的。
------解决方案--------------------
感谢楼主的分享。
------解决方案--------------------
太好啦!
------解决方案--------------------
探讨

引用:

主要 Windows API 过于浩瀚。。真的。。太浩瀚了。。


浩瀚的我都不知道具体应该用哪个了,真想有个windows API说明文档。

------解决方案--------------------
弄得蛮不错的,收藏一下
------解决方案--------------------
核心内容就是个API函数SHGetFileInfo的用法,SH开头的API是一类非常高级的Windows函数,但是大家用的一般不多,因为太高级,一般用C++的人还是自己用其它函数比较方便。

但是就这个函数来说,还是比较方便的,不然统计Windows系统的图标还是很麻烦的,各种情况太多。即使是这个函数和你看到的Windows的资源管理器里的图标,还不完全是一回事。
------解决方案--------------------
直截了当
------解决方案--------------------
我什么时候才能达到楼主的水平啊
------解决方案--------------------
楼主真好大大的好啊,可惜不懂C#要有其他版本就好了
------解决方案--------------------
好帖。。。
------解决方案--------------------
UNIT uFlags 取值273 272中的一个 怎么和MSDN上定义的uFlags值有出入

http://msdn.microsoft.com/en-us/library/bb762179(VS.85).aspx
------解决方案--------------------
谢谢楼主分享 很长见识
------解决方案--------------------
好玩,也挺实用的
------解决方案--------------------
学习了。
------解决方案--------------------
學習了。
------解决方案--------------------
学习楼主。