利用CLSID在WINDOWS桌面 创建系统图标

转载自:http://www.guokr.com/blog/481028/
今天突然想到在桌面新建一些有功能的特殊图标* 玩玩。不懂什么意思?恶意软件的那些讨人厌的删不掉的桌面图标有印象吧?原理就是在CLSID里插项写数值,然后把ID放到注册表对应的NameSpace里面。恶意软件们玩剩的把戏,其实对于我们来说还是有用的。(自己脑补用处吧噗噗。。)

首先要使用 Guidgen.exe(这个上网找找应该有,是Visual Studio里的一个工具) 计算出** 一个 CLSID 。


为了方便,请在WindowsXP的“运行”或者Windows7的搜索栏里输入“regedit”来打开注册表编辑器


进入注册表编辑器里面后,进入 HKEY_CLASSES_ROOT\CLSID 新建一个项,名称就是刚从guidgen里计算出的注册表格式的GUID。


例如我的CLSID是{22AFE113-191B-438C-93B6-2BCC7866A6F0},就新建一个以这个为名称的项。
在右侧的窗体能够看到这个项包含的值,默认值对应的是图标的标签,在里面新建一个名叫“InfoTip”的字符串值,这个值对应鼠标移动到图标上显示的提示信息。


在这个项下面新建 DefaultIcon、Shell,在Shell里面新建Open子项,里面包含一个Command子项。


DefaultIcon里的默认值对应的是图标文件,Shell包含的子项对应的是右键菜单项,Shell的默认值对应的是双击时应该执行哪一个子项。也就是说,下面的子项Opne就是动作。你可以增加多个动作以丰富你的右键菜单。每个动作都对应一个Command子项,默认值就是要执行的动作。


然后在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace 新建一个对应名称的子项


好了,刷新一下桌面,看看效果吧!

如果想在我的电脑里面显示你的自定义图标,则用相同的方法在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace添加你的CLSID,控制面板里添加就在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Control Panel\NameSpace里面添加。看出规律了吧?其他地方应该不用我解释了吧?(´・ω・`)

不想要的话就找回CLSID把所有的更改撤销即可,也就说你要是需要继续更改的话必须记得你的CLSID不然找起来可麻烦了。

建议新建两个.reg 文件,一个文件是添加图标的,一个文件是删除图标的,那么双击这些文件就能添加或者撤销更改,方便多了。


要是想研究出更多丰富的功能,只要在注册表里找出一些系统图标的CLSID项或者扩展名项,查看里面相似的地方的值即可研究出来,相信聪明的你能够玩出更多花样。

*某些U盘助手用的也是这个原理,只是他们不是把固定的值写在注册表而是引用他们自己的程序 or 函数库里面的值(查看一下我的文档等系统文件夹的CLSID或许更容易理解),而值是程序里的变量,所以右键菜单才能那么多姿多彩,这个方法有编程能力的童鞋可以试试。

** CLSID其实不一定要计算出来的,只要你填写的CLSID不在系统内出现就没问题。举个栗子:一个系统创建的CLSID的结尾是 b0fa71f5ecb1 ,另一个是 b0fa71f5ecb3 ,那么只要在中间插一个结尾为 b0fa71f5ecb2 的CLSID就可以保证没事了。

博主研究的基础来自  http://forums.mozillazine.org/viewtopic.php?t=182427 的内容

Guidgen.exe 可在我分享的笔记里找到:
https://www.evernote.com/shard/s313/sh/c78feb02-d299-46b7-969f-e35ae6bdbf5b/110cc55a00bc79af08002c9526d4ab6f

第一次上果壳写日志请多多关照, 如文章有什么不妥的地方请立即微博联系博主。( http://weibo.com/lingerkong
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值