2024年2月7日发(作者:)
ClsId及其使用
2019年11月2日
什么是ClsId?
Clsid,先得说下GUID,它是Globally Unique Identifier的简称,中文翻译为“全球唯一标示符”,在Windows系统中也称之为Class ID,缩写为CLSID。对于不同的应用程序,文件类型,OLE对象,特殊文件夹以及各种系统组件,Windows都会分配一个唯一表示它的ID代码。
GUID的简介及生成原理
GUID 全称Globally Unique Identifier,即全局唯一标识符。
GUID 是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个128 位(16 字节)的二进制值。它保证对在同一时空中的所有机器都是唯一的,世界上的任何两台计算机都不会生成重复的GUID 值。
GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字,总共包含36个字符。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。在 Windows 平台上,GUID 应用非常广泛:注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。
在C#中生成GUID的方法是:d().ToString()。
ID是英文IDentity的缩写,ID是身份标识号码的意思,就是一个序列号,也叫帐号,是一个编码,而且是唯一的。
常见组件或程序类对应的clsId
计算机中有各种个样的设备类型、内置程序、格式类型等采用了固定的GUID,所有电脑上安装的Windows系统都一样。微软用固定的GUID来标识,这对实际编程是有很大关系的,用错了会麻烦,列举一些:
1394 Host Bus Controller
Class = 1394
ClassGuid = {6bdd1fc1-810f-11d0-bec7-08002be2092f}
This class includes system-supplied drivers of 1394 host controllers connected on a PCI bus, but not drivers of 1394 peripherals.
Battery Devices
Class = Battery
ClassGuid = {72631e54-78a4-11d0-bcf7-00aa00b7b32a}
This class includes drivers of battery devices and UPSes.
CD-ROM Drives
Class = CDROM
ClassGuid = {4d36e965-e325-11ce-bfc1-08002be10318}
This class includes drivers of CD-ROM drives, including SCSI CD-ROM drives. By default, the system's CD-ROM class installer also installs a system-supplied CD audio driver and CD-ROM changer driver as PnP filters.
我的电脑 {20D04FE0-3AEA-1069-A2D8-08002B30309D}
我的文档 {450D8FBA-AD25-11D0-98A8-0800361B1103}
拨号网络 {992CFFA0-F557-101A-88EC-00DD010CCC48}
控制面板 {21EC2020-3AEA-1069-A2DD-08002B30309D}
计划任务 {D6277990-4C6A-11CF-8D87-00AA0060F5BF}
打印机 {2227A280-3AEA-1069-A2DE-08002B30309D}
记事本 {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
网络邻居 {208D2C60-3AEA-1069-A2D7-08002B30309D}
回收站 {645FF040-5081-101B-9F08-00AA002F954E}
公文包 {85BBD920-42A0-1069-A2E4-08002B30309D}
Web 文件夹 {BDEADF00-C265-11d0-BCED-00A0C90AB50F}
搜索-计算机{1f4de370-d627-11d1-ba4f-00a0c91eedba}
文件.{00020c01-0000-0000-c0046}
无关联文件文件名.{00021401-0000-0000-c0046}
BMP文件文件名.{d3e34b21-9d75-101a-8c3d-00aa001a1652}
HTML文件文件名.{25336920-03f9-11cf-8fd0-00aa00686f13}
媒体剪辑文件文件名.{00022601-0000-0000-c0046}
收藏夹文件名.{1a9ba3a0-143a-11cf-8350-444553540000}
excel.{00020810-0000-0000-C0046}
word.{00020900-0000-0000-C0046}
更多clsid,去注册表“HKEY_CLASSES_ROOTCLSID”下查看。
我的电脑(XP)/计算机(Win7)/此电脑(Win10)GUID(观察过Win7、Win10,确实一样)
回收站GUID
BMP类型GUID
Clsid的使用示例
一、给桌面“我的电脑”右键菜单中添加内容。
比如,添加一个组策略。
1、打开注册表编辑器,依次展开“HKEY_CLASSES_ROOTCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}shell”,在“shell”分支下新建个项,名为“gpedit”。(注:这个是右键菜单中项目显示名称,必须是英文,不能是中文,由于我们在右健菜单显示“组策略”中文名称,所以只能在下面”默认“值中输入中文名称)
2、接着,在右窗双击“默认”,在弹出对话框,输入“组策略(&F)”(注:这个是右键菜单中项目显示名称。后面(&F),为快捷键)
3、“gpedit”分支下新建个dword,名为“SuppressionPolicy”数据数值为“4000003c” 十六进制
4、在gpedit”新建项,名为“command”
5、点击“command”在右窗中找“默认”双击,在弹出对话框,输入“%windir% /s %windir%”(这个为执行命令,你也可以输入其它程序的路径,如:要打开QQ,就输入F:Program Files腾讯)
6、按下F5,刷新下,回到桌面再刷新下,现在右击桌面“我的电脑”,是不是多了个“组策略”?
二、用clasid做后缀,把文件夹变成类似“我的电脑”这样的系统图标,达到隐藏隐秘文件的目的
比如,你建立一个文件夹,里面放上几个文件,然后将文件夹名字更改为:我的电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D},这样你的文件夹就变成了我的电脑的图标了,并且打开也是我的电脑打开的界面,而不能看到文件夹里面的隐私文件夹!
识别它也很简单,只要安装了WinRAR,然后在被易容的文件夹上右击,所有伪装就被轻松地识破了。
改回原来的名字,到cmd底下用ren命令可以改。
三、通过clsid来实现对一些系统组件的调用
如在flash中调用“我的电脑”:b_ase = function() {getURL("file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}");};
效果就是点击b_btn这个按钮时,打开“我的电脑”。


发布评论