• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi编写定制显示叠加图标的Shell扩展

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

大家都知道快捷方式会在原有的图标左下方重叠个小箭头的图标,

文件夹共享也会在原有的图标下面出现个手的图标。

 

通过叠加图标的显示我们能很直观的了解到该图标所代表的含义,

下面我们就编写一个图标叠加扩展处理器,如果文件属性为只读的,就在图标的右下方加个小锁。

我们准备了一个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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
灰度图Matlab发布时间:2022-07-18
下一篇:
matlab 保存灰度和彩色图片发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap