加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

注册表操作常用API函数

发布时间:2021-04-11 16:57:02 所属栏目:动态 来源:互联网
导读:的操作和文件的操作非常类似,也存在打开、关闭、写入、查询等操作,也就是增、删、改、查的功能都具备,只是所使用的API函数都是以Reg开头的。 1. 打开和关闭注册表 操作注册表需要通过可以操作注册表的句柄,与文件操作类似。对注册表进行读写前,需要通过

的操作和文件的操作非常类似,也存在打开、关闭、写入、查询等操作,也就是“增、删、改、查”的功能都具备,只是所使用的API函数都是以Reg开头的。

1. 打开和关闭注册表

操作注册表需要通过可以操作注册表的句柄,与文件操作类似。对注册表进行读写前,需要通过API函数打开注册表,并返回用于操作注册表的句柄,通过操作注册表的API函数来打开返回的句柄,然后对注册表进行读写操作。当读写操作完成后,再通过API函数将打开的注册表句柄进行关闭。

打开注册表使用的函数是RegOpenKeyEx()。在Win16下有一个函数名为RegOpenKey(),虽然这个函数在Win32下仍然可用,但是这是为了兼容目的而设置的。RegOpenKeyEx()函数的定义如下:明如下。

hKey:指定一个父键句柄。

lpSubKey:指向一个字符串,用来表示要打开的子键名称。

ulOptions:系统保留,必须指定为 0 值。

samDesired:打开注册表的存取权限,为了方便对注册表的操作,通常使用 KEY_ALL_ACCESS 即可。

phkResult:指向一个双子变量,用来接收打开的子键句柄。

如果函数执行成功,则返回 ERROR_SUCCESS,并且在 phkResult 中保存返回打开子键的句柄。

所谓打开注册表,实质是打开注册表的某一个子键,然后进行操作。

当对注册表操作完成后,则需要关闭已打开的注册表句柄以便释放资源。关闭释放注册表句柄的函数定义如下:明如下。

hKey:用来指定父键句柄。

lpSubKey:指向一个字符串,用来表示要创建的子键名称。

Reserved:系统保留,必须指定为 0 值。

lpClass:子键类名,一般设置为 NULL 值。

dwOptions:创建子键时的选项,通常情况下使用 REG_OPTION_NON_VOLATILE宏,表示创建的子键被创建到注册表文件中,而不是内存中。

samDesired:打开注册表的存取权限,为了方便对注册表的操作,通常使用 KEY_ALL_ ACCESS 即可。

lpSecurityAttributes:该参数指向一个 SECURITY_ATTRIBUTES 结构体,用来指定键句柄的安全属性,这里一般使用 NULL。

phkResult:指向一个双子变量,用来接收打开的子键句柄。

lpdwDisposition:一般设置为 NULL 值。

如果函数执行成功,则返回ERROR_SUCCESS,并且在phkResult中保存返回创建子键的句柄。当需要创建的子键已经存在的时候,该函数起到与RegOpenKeyEx()函数同样的作用,那么打开注册表也可以使用RegCreateKeyEx()函数进行代替。不过该函数的参数比RegOpenKeyEx()函数的参数多。因此为了在写代码时更简便,打开注册表的操作还是使用RegOpenKeyEx()函数较为省事。

(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!