一、注册表的键的打开:RegOpenKey()与RegOpenKeyEx()
LONG WINAPI RegOpenKey{
_in HKEY hKey,
_in LPCTSTR lpSubKey,
_out PHKEY phkResult
};
LONG WINAPI RegOpenKeyEx{
_in HKEY hKey, //要打开的根键的名称
_in LPCTSTR lpSubKey, //要打开的子健的的路径和名称
DWORD ulOptions, //保留的(设为0)
_in REGSAM samDesired,//操作的权限 KEY_ALL_ACCESS (这个包括全部权限)
_out PHKEY phkResult //如果这个函数执行成功,就返回一个句柄
};
返回值:ERROR_SUCCESS表示成功。Winerror.h 中定义的非零错误代码表示失败。
二、打开注册表并操作完后得关闭 RegClose Key(hKey)
三、键的创建 RegCreateKey()与RegCreateKeyEx()
LONG WINAPI RegCreateKey{
_in HKEY hKey, //1.直接传递根键的句柄。2.要创建的子健的父键的句柄
_in LPCTSTR lpSubKey, //想要创建的子键的名字(可以带上路路径)
DWORD Reserved, //微软保留,0
_in LPTSTR lpClass, //指向键的类型的字符串的指针(一般为NULL)
_in DWORD dvOptions, //为新创建的键设定属性(一般为0)
_in REGSAM samDesired, //创建键的权限一般为KEY_ALL_ACCESS(0xF003F)
_in LPSECURITY_ATTRIBUTES lpSecurityAttributes, //安全属性指针 (一般为NULL)
_out PHKEY phkResult, //新创建子键的句柄
_out LPDWORD lpdvDisposition //可以查看是没有这个键新创建了一个还是原来就有这个键只是打开
//可以为NULL
};
四、键的删除RegDeleteKey()与ReDeleteKeyEx()
LONG WINAPI RegDeleteKey{
_in HKEY hKey, //要删除键的父键
_in LPCTSTR lpSubKey//子键的名字(它不能有子键)
};
五、修改键值
修改键值之前先要打开键
LONG WINAPI RegSetValuEx{
_in HKEY hKey, //句柄
_in LPCTSTR lpValueName, //要修改的键的名称(可以带路径),如果找不到键值会创建出来
DWORD Resevaed, //微软保留,0就可以
_in DWORD dvType, //要设值的键值的类型
_in const BYTE* lpData, //传递键值数据
_in DWORD cbData //指定传入缓冲区的大小
};
六、键值信息的获取
LONG WINAPI RegQueryValueEx{
_in HKEY hKey, //句柄
_in LPCTSTR lPValueName, //查询的键值的名字
LPDWORD lpReserved, //微软保留 NULL
_out LPDWORD lpType, //返回要查询值的类型
_out LPBYTE lpData, //查询出的数据
_in_out LPDWORD lpcbData //传入的时候是传入键值名字的缓冲区的大小
}; //传出的时候传的是拷贝出来的数据的缓冲区大小
本文介绍了C/C++中用于操作注册表的一些核心函数,包括:RegOpenKey()、RegOpenKeyEx()用于打开键,RegCloseKey()确保操作完成后关闭键,RegCreateKey()和RegCreateKeyEx()用于创建键,RegDeleteKey()及RegDeleteKeyEx()用于删除键,以及如何修改和获取键值等。通过这些函数,开发者可以实现对注册表的全面操作。

5212

被折叠的 条评论
为什么被折叠?



