在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
大家都知道快捷方式会在原有的图标左下方重叠个小箭头的图标, 文件夹共享也会在原有的图标下面出现个手的图标。
通过叠加图标的显示我们能很直观的了解到该图标所代表的含义, 下面我们就编写一个图标叠加扩展处理器,如果文件属性为只读的,就在图标的右下方加个小锁。 我们准备了一个16*16的小锁图标readonly.ico并存放到C:\目录下:
扩展接口 图标叠加扩展处理器主要实现接口 IShellIconOverlayIdentifier
;
IShellIconOverlayIdentifier 的 IsMemberOf首先被调用 参数: pwszPath: Shell对象的完整路径 dwAttrib: Shell对象的属性
;
GetPriority设置显示优先级,多个叠加图标时有效 参数: pIPriority: 可以设置为0-100之间的值,0的优先级别最高
;
GetOverlayInfo在Shell启动时加载图标到系统图标里 参数: pwszIconFile: Icon图标的完整路径,可以是.exe,.dll和.ico文件类型 cchMax: pwszIconFile 的 buffer大小 pIndex: 如果文件包含多个图标的话指定使用图标的索引值 pdwFlags: 指定返回什么类型的信息 ISIOI_ICONFILE: 返回pwszIconFile的路径信息 ISIOI_ICONINDEX: 返回pIndex的索引值 可以使用其中一种标识或者两者一起使用
;
实现扩展接口后接下来就是注册扩展
;
使用Regsvr32注册完我们的dll后并不能马上看到效果,因为图标是在Shell启动时才加载的。 重启Explorer或者新开个Explorer进程就可以看到效果了。
由于只是个简单的应用,在IsMemberOf里只用了dwAttrib就可以判断只读属性了,并没有用到pwszPath参数。 根据这个参数我们可以定制很多种其他的应用。 Demo下载: ShellExt.rar |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论