写这篇日志以前不是没有接触过C++来操作注册表,但这次的体会更深入了一点,故笔记如下。
首先可以从“注册表reg文件语法规则 ”了解下.reg文件的语法规则,因为很多时候是把.reg里的代码转换为程序里的啊。
知道语法后,可以根据里面的代码开始逐个转化为C++代码了。
首先是创建HKey,调用RegCreateKey 或 RegCreateKeyEx 函数。
函数定义:LONG RegCreateKeyEx(HKEY hKey,//已经打开的键的句柄,或者直接是上述几个根键
LPCTSTR lpSubKey,//要创建的子键名字的地址
DWORD ulOptions,//保留值,必须为0
REGSAM samDesired,//打开方式,如读还是写
PHKEY phkResult//返回的创建的子键的句柄
);
创建之后就是插入值了,也是有 RegSetValue 和 RegSetValueEx 函数,可是我强烈建议光用后者。
函数定义:LONG RegSetValueEx(HKEY hKey,//要设置的键的句柄
LPCTSTR lpValueName,//要访问的键值的名称
LPDWORD lpReserved,//保留值
DWORD dwType,//要设置的数据的类型
const BYTE *lpData,//要设置的健值 DWORD cbData//数据的长度
);
还有些情况会用到查询注册表的函数, RegQueryValue 和 RegQueryValueEx 。