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

Conmajia 2012-05-08 11:09:07
加精
睡前一玩

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

老规矩,源码 DEMO 在前

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


点我下载 DEMO

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


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

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





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

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




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



所以可以用到 Windows 的一个 API


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


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



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



打完收功。。



...全文
1167 43 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiying12571 2012-05-21
  • 打赏
  • 举报
回复
很有意思的东西
sanguorewrite 2012-05-19
  • 打赏
  • 举报
回复
发帖就得有诚意,发资源就不能收分 ? why?????
Teng_s2000 2012-05-18
  • 打赏
  • 举报
回复
感谢楼主的分享。
Conmajia 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 53 楼 的回复:]

童鞋 你的结贴率 好滴啊
不过你的共享精神可嘉
[/Quote]

我其实是打算在csdn上创造最低结贴率的。。可惜。。无望。。

我觉的这些东西用点心,磨一磨就出来了,没什么好自珍的。。

你注意看,我发的都没啥技术含量。。还是net2.0的。。复杂了的我确实也玩不了。。

本来打算来看看有什么好玩的,没有就我来发起主题,我非常希望有谁把改进了的版本回传给我。。
wy811007 2012-05-18
  • 打赏
  • 举报
回复
童鞋 你的结贴率 好滴啊
不过你的共享精神可嘉
叫我三三 2012-05-18
  • 打赏
  • 举报
回复
留个名,以后用到来看一下
DonsyMo 2012-05-17
  • 打赏
  • 举报
回复
楼主威武啊,太强了
富兰克陈 2012-05-17
  • 打赏
  • 举报
回复
楼主利害,受教了!
TIANMAOLINTIAN 2012-05-16
  • 打赏
  • 举报
回复
谢谢楼主分享 很长见识
yejihui9527 2012-05-16
  • 打赏
  • 举报
回复
野比 你的东西创意十足 赞
qiqundelang 2012-05-15
  • 打赏
  • 举报
回复
挺好的,就是用不上
li1261837913 2012-05-14
  • 打赏
  • 举报
回复
不错 收藏
yuwb980214 2012-05-14
  • 打赏
  • 举报
回复
楼主威武
ufo1199078 2012-05-14
  • 打赏
  • 举报
回复
感谢楼主的分享。
__________________ 2012-05-14
  • 打赏
  • 举报
回复
学习楼主。
yojinlin 2012-05-14
  • 打赏
  • 举报
回复
學習了。
larissa523 2012-05-14
  • 打赏
  • 举报
回复
学习了。
Conmajia 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 的回复:]
这还不简单啊,用assoc命令获取文件扩展名关联
比如txt,输入assoc .exe
会输出 .exe=exefile
然后去注册表找HKEY_CLASSES_ROOT\exefile\DefaultIcon 里面的默认就是指向图标了,因为exe用的都是程序自己的图标,所以只有%0,你也可以把exe的图标改成其他样子啊,就是把默认改成ico的路径就好了。效果比熊猫烧香还好还快、
[/Quote]

哦,哟西,受教了
「已注销」 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 的回复:]

这还不简单啊,用assoc命令获取文件扩展名关联
比如txt,输入assoc .exe
会输出 .exe=exefile
然后去注册表找HKEY_CLASSES_ROOT\exefile\DefaultIcon 里面的默认就是指向图标了,因为exe用的都是程序自己的图标,所以只有%0,你也可以把exe的图标改成其他样子啊,就是把默认改成ico的路径就好了。效果比熊猫烧香还好还快、
[/Quote]

sorry txt后面变成了exe,手误,txt 一样HKEY_CLASSES_ROOT\txtfile\DefaultIcon
「已注销」 2012-05-14
  • 打赏
  • 举报
回复
这还不简单啊,用assoc命令获取文件扩展名关联
比如txt,输入assoc .exe
会输出 .exe=exefile
然后去注册表找HKEY_CLASSES_ROOT\exefile\DefaultIcon 里面的默认就是指向图标了,因为exe用的都是程序自己的图标,所以只有%0,你也可以把exe的图标改成其他样子啊,就是把默认改成ico的路径就好了。效果比熊猫烧香还好还快、
加载更多回复(23)

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧