对注册表的操作是通过句柄来完成的,在对某个键下的键值进行操作的时候首先将该键进行打开,然后使用键句柄进行引用该键,操作完后要进行关闭;
注册键的根键不需要打开,他们的句柄是固定的,直接拿来用就是了。
 
该函数是打开一个指定的注册表键;
 
LONG RegOpenKeyEx(
    HKEY hKey, // 需要打开的主键的名称
    LPCTSTR lpSubKey, //需要打开的子键的名称
    DWORD ulOptions, // 保留,设为0
    REGSAM samDesired, // 安全访问标记,也就是权限
    PHKEY phkResult // 得到的将要打开键的句柄
 
hKey
[输入] 当前打开或者以下预定义的键。
HKEY_CLASSES_ROOT
      该主根键包含注册的所有ole信息和文档类型,是从hkey_local_machine\software\classes映射复制的。根据在Windows 98操作系统中文版中安装的应用程序的扩展名,该根键指明其文件类型的名称。
HKEY_CURRENT_USER
      该主根键包含本地工作站中存放的当前登录的用户信息:包括用户登录用户名和暂存的密码(注:此密码在输入时是隐藏的)。用户登录Windows 98操作系统时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。
HKEY_LOCAL_MACHINE
      该主根存放本地计算机硬件数据,此根键下的子关键字包括在SYSTEM.DAT中,用来提供HKEY_LOCAL_MACHINE所需的信息,或者在远程计算机中可访问的一组键中。
HKEY_USERS
      该主根键保存了存放在本地计算机口令列表中的用户标识和密码列表。每个用户的预配置信息都存储在 HKEY_USERS根键中。HKEY_USERS是远程计算机中访问的根键之一。
HKEY_CURRENT_CONFIG
      该主根键存放着定义当前用户桌面配置(如显示器等)的数据,最后使用的文档列表(MRU)和其他有关当前用户的Windows 98操作系统中文版的安装的信息。
Windows NT/2000/XP: HKEY_PERFORMANCE_DATAWindows 95/98/Me: HKEY_DYN_DATA
      该主根键注册表项只存在于windows 95、windows 98、windows 98 se、windows me以上几种微软操作系统当中,该主键存放了系统在运行时动态数据,此数据在每次显示时都是变化的,因此,此根               键下的信息没有放在注册表中。
lpSubKey
[输入] 以null结尾的字符串指针,包含要打开的注册表子项的名称。如果参数设置为NULL 或者指向一个空字符串,该函数将打开由hKey参数标识的键的新句柄。这种情况下,函数不会关闭先前已经打开的句柄。
ulOptions
保留,必须设置为 0
samDesired
[输入] 对指定键希望得到的访问权限的访问标记。 这个参数可以使下列值的联合。
值 Meaning
phkResult
[输出] 指向一个接收到打开的键的句柄的变量的指针。当您不再需要返回的句柄时,调用RegCloseKey函数来关闭它。
备注
不像 RegCreateKeyEx 函数,当指定键不存在 RegOpenKeyEx函数不创建新键。

RegOpenKeyEx的更多相关文章

  1. RegOpenKeyEx和RegSetValueEx返回ERROR_SUCCESS,但注册表未发生变化。

    win7 x64,需要open的时候加上KEY_WOW64_64KEY. lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microso ...

  2. [转]RegOpenKeyEx函数失败的问题

    在使用这个函数RegOpenKeyEx的时候,老是执行不成功,函数本身返回2,GetLastError返回0.在CSDN上查阅资料说是返回2的原因是注册表中对应路径不存在,可是我电脑中注册表那个键值明 ...

  3. 每日设置Bing首页图片为壁纸

    闲来无事,手痒痒要做一个什么小工具. 于是乎便有了本文. 当有一个想法的时候,首先免不了网上搜索一番以便看一下有木有网友有过类似的想法. 很显然--有! 因此本文大代码是从几个地方搜索,然后组合的. ...

  4. Windows API 函数列表 附帮助手册

    所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...

  5. Windows下C编程获取软件安装列表信息

    代码如下: #include <windows.h> #include <stdio.h> #include <iostream> #include <vec ...

  6. Windows 网络编程

    网络编程 API ,失败返回 -,错误代码 WSASYSNOTREADY 表示基础网络子系统没有准备好网络通行,WSAVERNOTSUPPORTED 表示 Socket 版本不支持,WSAEINPRO ...

  7. VC++ 设置软件开机自启动的方法

    0  概述 软件开机自启动是比较常用的做法,设置方法也有好几种. 1  使用者模式 在"开始菜单"的所有程序中有个"启动"文件夹,可以将需要设置为开机启动的应用 ...

  8. RegQueryValueEx正确使用方法

    项目中需要读取注册表中的HKEY_CLASSES_ROOT主键下一个子键的值,看了看MSDN的说明,有RegOpenKeyEx和RegQueryValueEx两个函数可以用.也没仔细阅读函数说明,就写 ...

  9. WIN32服务程序(三):完整的服务程序实例

    前面我们所讲的“服务程序”,更准确地说是服务控制程序,例如我们通过输入应用的路径,将一个应用程序添加到服务控制管理器.一个服务控制程序可以将一个程序添加到服务控制管理器中,并控制它的运行.停止和删除等 ...

随机推荐

  1. JSON.parse无双引号如何实现转换

    用JSON.parse()做转换,必须用双引号包起来.但是我用chrome的devtools时,它可以自动转换.于是上网查了一下,原来可以通过replace方法格式化一下.(修改后可以兼容日期格式) ...

  2. Jenkins 进阶篇 - 数据备份

    随着我们的长期使用,Jenkins 系统中的内容会越来越多,特别是一些配置相关的东西,不能有任何丢失.这个时候我们就需要定期备份我们的 Jenkins 系统,避免一些误操作不小心删除了某些重要文件,J ...

  3. javascript中的设计模式

    什么是设计模式 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结. 使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. ...

  4. LeNet-5网络搭建详解

    LeNet-5是由Yann LeCun设计的用于手写数字识别和机器打印字符的卷积神经网络.她在1998年发表的论文<基于梯度学习的文本识别>中提出了该模型,并给出了对该模型网络架构的介绍. ...

  5. 手把手使用Python进行语音合成,文字转语音

    目录 0. 太长不看系列,直接使用 1. Python调用标贝科技语音合成接口,实现文字转语音 1.1 环境准备: 1.2 获取权限 1.2.1 登录 1.2.2 创建新应用 1.2.3 选择服务 1 ...

  6. 【模拟7.27】单(liu_runda学长的神题)

    好像用到一些高中数学知识...... 满分做法: case 0:已知a数组求b数组 因为是树状结构,设当前节点x 儿子to 我们从任意一点出发可求出b[root]来,之后我们可以通过寻找两两相连节点的 ...

  7. Linux查看与设定别名

    1.alias :查看系统中所有的命令别名 2.设定别名 alias 别名='原命令' 3.删除别名 unalias 别名 4.使别名永久生效    vi  ~/.bashrc  写入这个文件中即可永 ...

  8. Python如何设计面向对象的类(上)

    Python是一门高级语言,支持面向对象设计,如何设计一个符合Python风格的面向对象的类,是一个比较复杂的问题,本文提供一个参考,表达一种思路,探究一层原理. 目标 期望实现的类具有以下基本行为: ...

  9. nginx服务跳转

    1.什么是页面跳转 将URL信息做改变 将URI信息做改变 完成伪静态配置 2.实现页面跳转的方法 http://nginx.org/en/docs/http/ngx_http_rewrite_mod ...

  10. lvm脚本

    # 2 SWAP 20GB SWAP # 3 /usr/sap 50GB /usr/sap # 4 Shared 1 x 512 GiB /hana/shared # 5.6 Log 2 x 300 ...