①、注册表简介:

注册表到底是个什么东西?
注册表实际上是一个管理配置系统运行参数的核心数据库,它记录了安装软件与运行程序的关联关系,计算机的硬件配置等信息。可以说计算机上所有针对硬件、软件、网络的操作都是源于注册表的。
可以使用 regedit.exe 这个系统提供的注册表编辑器去管理编辑注册表,他只是一个编辑器不是注册表的文件。

注册表内的所有信息都是存放在 System.dat、User.dat 文件中的,其中 System.dat 文件包含了所有的硬件信息和软件信息,User.dat 包含了用户信息。
如果在系统中配置了两个或两个以上的用户,在 Windows\Profile\用户名目录 中还存放有各个用户的 User.dat 文件,这些文件都是二进制数据文件,
修改注册表实际上就是对上述的三个文件进行修改。但是,我们不能对这些二进制数据文件进行直接修改,而必须要借助于注册表编辑器。

注册表编辑器实际上就是我们查看和修改注册表文件的图形界面。

Windows XP 注册表的结构
  Windows XP的注册表同样是以树形结构组织的。它由两个注册表子目录树组成:HKEY_LOCAL_MACHINE 和 HKEY_USERS。
但是为了使注册表中的信息更易于查找,Windows XP 预定义了五个子目录树。

具体见:注册表结构图
===================================================
②、常用的注册表的键值类型:
其他不常用格式具体见MSDN:
REG_BINARY:未处理的二进制数据。多数硬件组件信息都是以二进制存储,而以十六进制格式显示在注册表编辑器中;
REG_WORD:数据由4字节长的数表示。许多设备驱动程序和服务的参数是这种类型,并在注册表编辑器中以二进制、十六进制或十进制的格式显示;
REG_EXPAND_SZ:长度可变的数据串。该数据类型包含在程序或服务使用该数据时确定的变量
REG_MULTI_SZ:多重字符串。其中包含格式可被用户读取的列表。项用空格、逗号、或其他标记分开;
REG_SZ:固定长度的文本串;

注册表示例:
1、系统启动项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
2、文件类型注册,为指定的文件类型关联打开的可执行程序;
===================================================
③、几个根键的用途说明:

HKEY_LOCAL_MACHINE 根键中包含了操作系统、安装软件及硬件的相关信息。如计算机总线类型、系统可用内存、当前装载了哪些设备驱动程序以及启动控制数据等。
实际上,HKEY_LOCAL_MACHINE 根键保存着注册表中的大部分信息,而另外4个根键都是其子键的别名。

HKEY_CURRENT_USER 根键包含这当前登录到计算机上的用户的配置文件。其子键包含着环境变量、个人程序组、桌面设置、网络连接、打印机和应用程序首选项等信息。
计算机把当前用户的信息映射到这个根键下,若未激活用户配置,则它指向子键 HKEY_USERS\.DEFAULT。

HKEY_CLASSES_ROOT 根键记录的是系统中各类文件与其应用程序之间的对应关系,即记录了某类文件和打开该类文件的应用程序之间的相互关联关系。
HKEY_CLASSES_ROOT 根键是 HKEY_LOCAL_MACHINE\SOFTWARE\Classes 的快捷方式,是注册表的一个最大分支,包括了成千上万的与程序、文件相关联的键和值以及ActiveX类的定义等内容。

HKEY_USERS 根键下包含了计算机的所有用户的信息。用户根据个人爱好设置的诸如桌面、背景、开始菜单程序项、应用程序快捷键、显示字体、屏幕节电设置等信息均记录在这个跟建中
HKEY_CURRENT_USER 也是 HKEY_USERS 其中的的一个快捷键部分。

HKEY_CURRENT_CONFIG 根键包含的主要内容是计算机的当前配置情况,如显示器、打印机等可选外部设备及其设置信息等。
===================================================
④、注册表的键的打开与关闭:

注册表的键的打开:RegOpenKey 与 RegOpenKeyEx
LONG WINAPI RegOpenKeyEx(
  __in          HKEY hKey,
  __in          LPCTSTR lpSubKey,
  DWORD ulOptions,
  __in          REGSAM samDesired,
  __out         PHKEY phkResult
);

注册表的关闭:RegCloseKey

void CRegTestDlg::OnBnClickedBtn()
{
HKEY hKey = NULL;
TCHAR *lpszSubKey = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
LONG lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpszSubKey, 0, KEY_ALL_ACCESS, &hKey);
if (lRet == ERROR_SUCCESS){
MessageBox(_T("打开成功!"));
}else{
MessageBox(_T("打开失败!"));
}

RegCloseKey(hKey);
}
===================================================
⑤、注册表的键的创建与删除:

注册表的键创建:RegCreateKey 与 RegCreateKeyEx (也可以打开指定的键,同时可以创建n层深的一个子键)
LONG WINAPI RegCreateKeyEx(
  __in          HKEY hKey,
  __in          LPCTSTR lpSubKey,
  DWORD Reserved,
  __in          LPTSTR lpClass,
  __in          DWORD dwOptions,
  __in          REGSAM samDesired,
  __in          LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  __out         PHKEY phkResult,
  __out         LPDWORD lpdwDisposition
);

注册表的键删除:RegDeleteKey 与 RegDeleteKeyEx(x64)
LONG WINAPI RegDeleteKey(
  __in          HKEY hKey,
  __in          LPCTSTR lpSubKey
);
===================================================
※※※ 小作业:练习本节课介绍的相关 API 函数的使用以及相关的 Shell 注册表操作函数!

vc++高级班之注册表篇[1]---认识并操作注册表相关推荐

  1. html中js添加或删除activex,JS:操作样式表2 :用JS实现添加和删除一个类名的功能(addClass()和removeClass())...

    var box = document.getElementById("box"); box.id = "pox"; 将id = "box", ...

  2. MySQl的库操作、表操作和数据操作

    一.库操作 1.1库的增删改查 (1)系统数据库: performance_schema:用来收集数据库服务器的性能参数,记录处理查询时发生的各种事件.锁等现象 mysql:授权库,主要存储系统用户的 ...

  3. Sharding-JDBC(操作公共表)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记013

    然后我们再来看一下sharding-jdbc这个公共表 可以看到公共表的试一试就是每个数据库中都有这个表,比如 我们在我们的t_user这个表中,有个字段这个字段是ustatus. 这个比如当是a的时 ...

  4. VBS带你领略脚本语言的快乐!(注册表篇)

    用VBS操作注册表 前言    先前我们解了了VBS入门知识和VBS基础知识,但那些都比较low,我相信在这高级语言统治的信息社会,转过头来学脚本的人,目的肯定不单纯.就像我当年就是因为它可以做一些恶 ...

  5. [转]软件保护之注册算法篇

    原文地址:http://blog.csdn.net/fangle6688/article/details/1023699 软件保护之注册算法篇 fangle 2003 一.前言 通常地,软件保护可分为 ...

  6. delphi 操作注册表详解

    32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息.   一.创建和释放TRegistry对象   1.创建TRegistry对象.为了操作注册表,要创建一个TRegistr ...

  7. 怎么删除python3.7注册表内容_python3操作注册表的方法(Url protocol)

    使用python操作注册表的方法最近学习了一下,现在做一下笔记,由于对Python语言的使用还不是很熟练,所以写不出高大上的结构,但是解决问题搓搓有余了. 说道注册表顺便也说一说环境变量的修改(放下下 ...

  8. 用VB操作注册表 [转]

    用VB操作注册表(一) [转] 认识登录数据库(Registry) 我们在这里主要通过由Windows系统本身提供的注册表编辑器regedit.exe来认识登录数据库(Registry) 1.Key和 ...

  9. remapkey不能打开注册表_Windows技巧之妙用注册表

    注册表是Windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着Windows的启动.硬件驱动程序的装载以及一些Windows应用程序的运行,从而在整个系统中起着核心作用.这些作用包括 ...

最新文章

  1. 最强原创综述!当强化学习邂逅组合优化
  2. 装了BT5后要做的几件事
  3. Git学习笔记:分支管理(1)
  4. oracle右连接失效,oracle 右连接
  5. 关于EXCEL数据导入到SQLServer中字段存在NULL的问题
  6. [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)...
  7. React Native集成Redux框架讲解与应用
  8. vc++学习精髓(收集,整理)
  9. windows 下 latex graphviz 字体设置
  10. 滴滴派发15亿出行消费券 覆盖快车、优享等多产品
  11. python批量上传执行脚本_python 写的批量操作远程主机脚本(命令执行,上传、下载文件)...
  12. 列举php magic方法,如何在PHP中實現__isset()魔術方法?
  13. 全文搜索引擎 Elasticsearch 入门(ik,kibana,x-pack)
  14. windows下nginx+mono+fastCGI部署asp.net网站
  15. AODV按需路由协议
  16. 阿里云|无影云桌面之初体验,只有一句真滴New Beer
  17. php人机验证,89.人机验证(一) |《TDD 构建 Laravel 论坛笔记》| Laravel China 社区...
  18. Linux 目录初识
  19. React 动效 Framer motion,给你的页面添加一点动感
  20. 2022零碳中国优秀案例及零碳技术解决方案

热门文章

  1. 基于SSM的医院住院管理系统
  2. CVPR2019----论文汲取
  3. 首长,Redis 性能优化十三条军规立好了,请过目~
  4. 见了五轴别怂,五轴转台的调试和旋转中心的设置
  5. 产品运营:如何做好B端竞品分析?
  6. 【100%通过率】华为OD机试真题 JS 实现【最差产品奖】【2023 Q1 | 200分】
  7. CV牛人牛事简介之一(转载)
  8. 英语句子成分分析(三)--主语+谓语+宾语
  9. ArcGIS 对等高线进行标注
  10. vscode搜索正则匹配