注册表操作常用API函数
的操作和文件的操作非常类似,也存在打开、关闭、写入、查询等操作,也就是“增、删、改、查”的功能都具备,只是所使用的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()函数较为省事。 (编辑:南通站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |