Widows 注册表 HKEY_CLASSES_ROOT
Widows 注册表
HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字。在CLSID关键字之下列有系统中安装的所有组件的CLSID。注册表CLSID是一个具有如下格式的串:00000010-0000-0010-8000-00AA006D2EA4
HKEY_CLASSES_ROOT的开头,列出的将是各种应用程序所注册的文件扩展名。在扩展名之后,可以看到许多其他的名字。此类名字的大多数被称作是ProgID,表示是程序员定义的标识符。某些名称表示的不是ProgID而是一些特殊的关键字.
如
- CLSID
- AppID—此关键字下的子关键字的作用是将某个APPID(应用程序ID)映射成某个远程服务器名称。分式COM(DCOM)将用到此关键字。
- 组件类别—注册表的这一分支可以将CATID(组件类别ID)映射成某个特定的组件类别。
- Interface—此关键字用于将IID映射成与某个接口相关的信息。这些信息主要用于在跨进程边界使用接口的情况。
- Licenses—保存的是授权使用COM组件的一些认可信息。
- TypeLib—类型库关键字所保存的是关于接口成员函数所用参数的信息。另外还有其他一些信息。此关键字可以将一个LIBID映射成存储类型库的文件名称。
ProgID:所谓ProgID指的是程序员给某个CLSID指定的一个程序员易记的名称。
ProgID命名约定
<Program>.<Component>.<Version>
如下图:
其中如WPP.Application是版本无关ProgID,根据其值可在CLSID下找到相应键,以此找到相应信息,如组件最新版本信息。WPP.Appplication.1是版本相关的ProgID,根据其CLSID值可在找到该版本组件的信息。
ProgID注册表格式
ProgID及与版本无关的ProgID被列在组件CLSID下面。
ProgID的主要作用是获取相应的CLSID。在每一个CLSID项中查找查个ProgID将是非常低效的。因此在 的下面也将直接列出ProgID。由于ProgID不是针对最终用户而定义的,因此ProgID关键字的缺省值为用户易记的名称。在 之下有一个名为CLSID的关键字,其缺省值为组件的CLSID。如下图所示:
与版本号无关的ProgID 也直接被列在HKEY_CLASSES_ROOT下面。它们还有另外一个关键字CurVer,其缺少值为组件当前版本的ProgID
ProgID和CLSID的转换
CLSIDFromProgID
ProgIDFromCLSID
组件的自注册
为把组件注册到注册表,在DLL一定要输出如下两个函数:
STDAPI DllRegisterServer(); // 注册
STDAPI DllUnregisterServer(); // 反注册
我们使用REGSVR32.exe注册某个组件或反注册某个组,其实就是调用这两个函数的。
Widows 注册表 HKEY_CLASSES_ROOT相关推荐
- COM笔记-Widows 注册表
Widows 注册表 HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字.在CLSID关键字之下列有系统中安装的所有组件的CLSID.注册表CLSID是一个具有如下格式的 ...
- Widows 注册表
Widows 注册表 HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字.在CLSID关键字之下列有系统中安装的所有组件的CLSID.注册表CLSID是一个具有如下格式的 ...
- C#中如何获取注册表信息
实现方式:利用Microsoft.win32类提供的注册表类访问系统注册表获取ODBC数据服务列表. 具体实现: Microsoft.win32提供了RegistryKey类,用来访问系统的注册表. ...
- 注册表添加 右键功能
好久以前就保存下来的东西,今天突然又用到了,也就写成文章,以示记录! 目标:增加右键菜单项 如"用EditPlus打开" 步骤: 1.在 注册表 "HKEY_CLASSE ...
- 注册表html右键默认浏览器,如何锁定默认浏览器?用注册表设置默认浏览器方法...
? 当我们在电脑中安装各种应用程序时,经常会遇到莫名其妙多安装了一些额外的软件,有的会篡改电脑默认使用的浏览器.很多用户特别反感这样的"流氓"操作,这时候可以锁定电脑使用的默认浏览 ...
- 注册表应用宝典(1)
1.自动刷新 每次在窗口添加一个文件夹或删除一个对象后,须要按<F5>键对窗口 进行重新刷新,很麻烦.通过修改注册表可以达到自动刷新的目的.点击HKEY_LOCAL_MACHINE\SYS ...
- 关于win7注册表中文件关联应用程序的规则
最近在做一个关于应用程序和文件图标的工具,过程中需要了解windows如何给文件选择展示图标和默认打开方式的问题,各种论坛上有关资料查了很多,但是自己一旦尝试过后就会发现所讲的都很表面,不能代表win ...
- 软件绿化之注册表右键菜单二
自己在使用自己绿化的notepad++时,发现了一个小问题 通过notepad++安装程序安装的notepad++,不管一次选中多少个文件都会出现notepad++右键菜单,但我绿化后的notepad ...
- 如何修改右键菜单新建文档的参数--注册表操作
第一节 修改右键菜单中,新建文档的相关内容: 因为在互联网上很难搜索到相关的答案,笔者只好自己动手,丰衣足食. 第一个问题:右键菜单->新建->(相应的文档名称),这个设置的参数在Wind ...
最新文章
- 6.1 网络应用模型
- Java编程之前的复习和练习
- android studio m1,Android Studio 4.0发布 为Android 11做好准备
- 排序 (2)快速排序-多个数组
- 缺少libtool依赖导致编译安装失败
- R语言分类算法之集成学习(Bootstrap Aggregating)
- 第一:如何解决robot framework log.html中的中文乱码问题
- linux 软件下载后无法安装不了怎么办,Firefox无法安装怎么办
- arcgis开发笔记【silverlight 发布rest地图服务】
- java不能对什么类型进行转换_@Value - 无法将类型'java.lang.String'的值转换为所需类型'java.lang.Integer'...
- mysql企业版安装_mysql企业版怎么安装图解
- mysql怎么加载txt文本1148_MySQLload从文件读入数据提示ERROR1148
- rimraf : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\rimraf.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅
- 031--python--打印机票页面
- 【马司机带带我】电话骚扰自动化及其对策
- 服务器引擎制作,2.5D-GIS地图引擎设计
- 2020-01-08 Oracle 数据库储存生僻字
- 网站首页的设计(转)
- http请求走私漏洞原理,利用,检测,防护
- 腾讯开放平台 iOS应用URL schema、Bundle ID填写 (含微博、微信)