注册表

微软官方文档链接:https://docs.microsoft.com/zh-cn/windows/win32/sysinfo/registry

注册表是系统定义的数据库,应用程序和系统组件在其中存储和检索配置数据。 注册表中存储的数据根据Microsoft Windows的版本而有所不同。 应用程序使用注册表API来检索,修改或删除注册表数据。

注册表是一个分层数据库,其中包含对于Windows以及Windows上运行的应用程序和服务的运行至关重要的数据。 数据以树格式构造。 树中的每个节点都称为键。 每个键都可以包含子键和称为值的数据条目。 有时,键的存在是应用程序需要的所有数据; 其他时候,应用程序打开一个键并使用与该键关联的值。 键可以具有任意数量的值,并且值可以采用任何形式。

 应用程序添加注册表的过程:

应用程序必须先打开键,然后才能将数据添加到注册表。 要打开键,应用程序必须提供注册表中已打开的另一个密钥的句柄。 系统定义了始终打开的预定义键。 预定义的键可帮助应用程序在注册表中导航,并使开发允许系统管理员操纵数据类别的工具成为可能。 向注册表添加数据的应用程序应始终在预定义键的框架内工作,以便管理工具可以查找和使用新数据。应用程序可以将这些键的句柄用作注册表的入口点。 尽管句柄的使用可能因平台而异,但是这些句柄对注册表的所有实现均有效。 此外,还为特定平台定义了其他预定义的句柄。 以下是预定义键的句柄。

  • HKEY_CLASSES_ROOT从属于此键的注册表项定义了文档的类型(或类)以及与这些类型关联的属性。 Shell和COM应用程序使用此键下存储的信息。
  • HKEY_CURRENT_CONFIG:包含有关本地计算机系统的当前硬件配置文件的信息。 HKEY_CURRENT_CONFIG下的信息仅描述当前硬件配置和标准配置之间的差异。 有关标准硬件配置的信息存储在HKEY_LOCAL_MACHINE的Software和System键下。HKEY_CURRENT_CONFIG是HKEY_LOCAL_MACHINE System CurrentControlSet Hardware Profiles Current的别名。
  • HKEY_CURRENT_USER从属此注册表项的注册表项定义了当前用户的首选项。这些首选项包括环境变量的设置,有关程序组,颜色,打印机,网络连接和应用程序首选项的数据。使用此键可以更轻松地建立当前用户的设置。密钥映射到HKEY_USERS中当前用户的分支。
  • HKEY_CURRENT_USER_LOCAL_SETTINGS属于此键的注册表项定义了计算机本地的当前用户的首选项。
  • HKEY_LOCAL_MACHINE属于此键的注册表项定义了计算机的物理状态,包括有关总线类型,系统内存以及已安装的硬件和软件的数据。 它包含保存当前配置数据的子项,这些子项包括即插即用信息(Enum分支,其中包括系统上所有硬件的完整列表),网络登录首选项,网络安全信息,与软件有关的信息(例如 作为服务器名称和服务器位置),以及其他系统信息。
  • HKEY_PERFORMANCE_DATA从属于此注册表项的注册表项使您可以访问性能数据。 数据实际上没有存储在注册表中; 注册表功能使系统从其源收集数据。
  • HKEY_PERFORMANCE_NLSTEXT从属于此注册表项的注册表项引用了文本字符串,这些文本字符串以计算机系统运行所在区域的本地语言描述了计数器。
  • HKEY_PERFORMANCE_TEXT属于此键的注册表项引用了描述美式英语计数器的文本字符串。
  • HKEY_USERS从属于此注册表项的注册表项定义本地计算机上新用户的默认用户配置以及当前用户的用户配置。

在将数据放入注册表之前,应用程序应该将数据分为两类:特定于计算机的数据和特定于用户的数据。通过进行这种区分,应用程序可以支持多个用户,同时还可以在网络上定位特定于用户的数据,并在不同的位置使用这些数据,从而允许独立于位置的用户配置文件数据。(用户配置文件是为每个用户保存的一组配置数据。)

安装该应用程序后,应在HKEY_LOCAL_MACHINE项下记录特定于计算机的数据。在HKEY_CURRENT_USER键下记录特定于用户的数据。

原文地址:https://www.cnblogs.com/jade0702/p/12457061.html