- 帖子
- 1058
- 积分
- 1559
- 技术
- 112
- 捐助
- 0
- 注册时间
- 2010-4-30
|
本帖最后由 czjt1234 于 2013-6-25 17:00 编辑
通用唯一识别码,简称UUID
UUID是按开放软件基金会(OSF)制定的算法,由机器产生的128位的数字
格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx (8-4-4-4-12),其中x是十六进制的数字
例如:6F9619FF-8B86-D011-B42D-00C04FC964FF
UUID的格式和长度是固定的
需要UUID的时候,由机器按算法自动产生,不需要一个权威机构来管理
按照该算法标准,理论上不会产生出2个相同的UUID。这也是该算法的目的
目前最广泛应用的UUID,是微软的GUID
其他重要的应用,有 Linux ext2/ext3 档案系统、LUKS 加密分割区、GNOME、KDE、Mac OS X 等等
UUID的唯一性,在保密性方面需要引起关注
比如,offices2000曾给每一个文档附加UUID,用户看不到,但微软可以读取
理论上,微软就可以根据UUID,在全球范围内锁定该文档是由哪台电脑何时创建的
又如,在iTunes软件中,可以看到每一个iPod、iPad、iPhone的UUID
微软使用UUID,称之为:全局唯一标识符,简称GUID
COM对象使用GUID,称之为;类标识符,简称CLSID
显然这三者的格式是一样的,都具有全球唯一性
--------------------------------------------------------------------------------
COM规范是微软制定的一个编程规范、编程标准
COM组件是按COM规范编写的dll文件或exe文件,可以是微软编写的或第三方编写的
用regsvr32命令注册COM组件后,可以使用COM对象
每个COM对象都有全球唯一的类标识符(CLSID),都有组件接口(属性或方法)
为便于使用,许多COM对象提供了易记的名字ProgID
注意:区分COM对象的唯一标志是CLSID,不能用ProgID区分COM对象
指向同一CLSID的不同ProgID,代表同一个COM对象
如同一个COM对象的不同版本
ProgID:WScript.Shell 和 WScript.Shell.1
CLSID都是:{72C24DD5-D70A-438B-8A42-98424B88AFB8}
比如导入注册表
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\QQ.20147578]
@="Windows Script Host Shell Object"
[HKEY_CLASSES_ROOT\QQ.20147578\CLSID]
@="{72C24DD5-D70A-438B-8A42-98424B88AFB8}"
那么我们就可以用ProgID:QQ.20147578来创建WshShell对象
Dim objWshShell
Set objWshShell = CreateObject("QQ.20147578")
Msgbox objWshShell.CurrentDirectory
编程语言可以指定CLSID或ProgID来使用COM对象。vbs只能指定ProgID
ProgID 在注册表的 HKEY_CLASSES_ROOT
CLSID 在注册表的 HKEY_CLASSES_ROOT\CLSID
当你注册了新的COM组件后,这儿就会增加新的ProgID和CLSID
安装的软件不一样,则不同机器的可用的COM对象也就有多有少
包括微软,每天都有无数的程序员在编写新的COM组件
因此想要找COM对象大全是不可能的
注意,这2个注册表位置并非只保存COM对象的信息
所以注册表里CLSID对应的ProgID并不都能用来创建对象 |
|