c/c++操作注册表的函数

本文介绍了C/C++中用于操作注册表的一些核心函数,包括:RegOpenKey()、RegOpenKeyEx()用于打开键,RegCloseKey()确保操作完成后关闭键,RegCreateKey()和RegCreateKeyEx()用于创建键,RegDeleteKey()及RegDeleteKeyEx()用于删除键,以及如何修改和获取键值等。通过这些函数,开发者可以实现对注册表的全面操作。

一、注册表的键的打开: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  //传入的时候是传入键值名字的缓冲区的大小
};                            //传出的时候传的是拷贝出来的数据的缓冲区大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值