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

 

ProgIDCLSID的转换

CLSIDFromProgID

ProgIDFromCLSID

组件的自注册

为把组件注册到注册表,在DLL一定要输出如下两个函数:

STDAPI DllRegisterServer();     // 注册

STDAPI DllUnregisterServer();   // 反注册

我们使用REGSVR32.exe注册某个组件或反注册某个组,其实就是调用这两个函数的。

Widows 注册表 HKEY_CLASSES_ROOT相关推荐

  1. COM笔记-Widows 注册表

    Widows 注册表 HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字.在CLSID关键字之下列有系统中安装的所有组件的CLSID.注册表CLSID是一个具有如下格式的 ...

  2. Widows 注册表

    Widows 注册表 HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字.在CLSID关键字之下列有系统中安装的所有组件的CLSID.注册表CLSID是一个具有如下格式的 ...

  3. C#中如何获取注册表信息

    实现方式:利用Microsoft.win32类提供的注册表类访问系统注册表获取ODBC数据服务列表. 具体实现: Microsoft.win32提供了RegistryKey类,用来访问系统的注册表. ...

  4. 注册表添加 右键功能

    好久以前就保存下来的东西,今天突然又用到了,也就写成文章,以示记录! 目标:增加右键菜单项 如"用EditPlus打开" 步骤: 1.在 注册表 "HKEY_CLASSE ...

  5. 注册表html右键默认浏览器,如何锁定默认浏览器?用注册表设置默认浏览器方法...

    ? 当我们在电脑中安装各种应用程序时,经常会遇到莫名其妙多安装了一些额外的软件,有的会篡改电脑默认使用的浏览器.很多用户特别反感这样的"流氓"操作,这时候可以锁定电脑使用的默认浏览 ...

  6. 注册表应用宝典(1)

    1.自动刷新 每次在窗口添加一个文件夹或删除一个对象后,须要按<F5>键对窗口 进行重新刷新,很麻烦.通过修改注册表可以达到自动刷新的目的.点击HKEY_LOCAL_MACHINE\SYS ...

  7. 关于win7注册表中文件关联应用程序的规则

    最近在做一个关于应用程序和文件图标的工具,过程中需要了解windows如何给文件选择展示图标和默认打开方式的问题,各种论坛上有关资料查了很多,但是自己一旦尝试过后就会发现所讲的都很表面,不能代表win ...

  8. 软件绿化之注册表右键菜单二

    自己在使用自己绿化的notepad++时,发现了一个小问题 通过notepad++安装程序安装的notepad++,不管一次选中多少个文件都会出现notepad++右键菜单,但我绿化后的notepad ...

  9. 如何修改右键菜单新建文档的参数--注册表操作

    第一节 修改右键菜单中,新建文档的相关内容: 因为在互联网上很难搜索到相关的答案,笔者只好自己动手,丰衣足食. 第一个问题:右键菜单->新建->(相应的文档名称),这个设置的参数在Wind ...

最新文章

  1. 6.1 网络应用模型
  2. Java编程之前的复习和练习
  3. android studio m1,Android Studio 4.0发布 为Android 11做好准备
  4. 排序 (2)快速排序-多个数组
  5. 缺少libtool依赖导致编译安装失败
  6. R语言分类算法之集成学习(Bootstrap Aggregating)
  7. 第一:如何解决robot framework log.html中的中文乱码问题
  8. linux 软件下载后无法安装不了怎么办,Firefox无法安装怎么办
  9. arcgis开发笔记【silverlight 发布rest地图服务】
  10. java不能对什么类型进行转换_@Value - 无法将类型'java.lang.String'的值转换为所需类型'java.lang.Integer'...
  11. mysql企业版安装_mysql企业版怎么安装图解
  12. mysql怎么加载txt文本1148_MySQLload从文件读入数据提示ERROR1148
  13. rimraf : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\rimraf.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅
  14. 031--python--打印机票页面
  15. 【马司机带带我】电话骚扰自动化及其对策
  16. 服务器引擎制作,2.5D-GIS地图引擎设计
  17. 2020-01-08 Oracle 数据库储存生僻字
  18. 网站首页的设计(转)
  19. http请求走私漏洞原理,利用,检测,防护
  20. 腾讯开放平台 iOS应用URL schema、Bundle ID填写 (含微博、微信)

热门文章

  1. 百度ueditor - 支持word上传的富文本编辑器
  2. 【软件测试】身为测试人,经常背锅的我该咋办?
  3. 第一章 react前端开发-react入门
  4. CSS3:2D转换(基础)
  5. linux修改文件句柄数生效_linux设置打开文件句柄数
  6. 几个我听过但不懂的名词
  7. matlab mann-kendall,基于Matlab的Mann-Kendall突变检验及高分辨率图形输出
  8. 5G新潮流--视频彩铃
  9. 开篇 关于iOS越狱开发
  10. Deno正式发布,彻底弄明白和Node的区别