API---注册表编程
2021-03-26 20:28
标签:mic include 长度 一个 返回值 cst art img err 首先来认识一下键,项,值吧: 左边有五个根键: HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USER HKEY_CURRENT_CONFIG 根键展开后可以看到子健:像 "SOFTWARE, Microsoft, Windows, CurrentVersion 等都是子健。 而最后一级便不是子健了,而是项:Run。 “名称栏” 下方的都称为 键值项。 “类型栏” 下方的都称为 键值项的类型。 “数据栏” 下方的都称为 键值项的键值。 RegCreateKeyEx() 介绍: 功能:创建或打开注册表键。 函数原型:LONG RegCreateKeyEx( // 定义返回的句柄是否可以被子进程继承,为 NULL 表示不继承。 参数:dwOptions REG_OPTION_NON_VOLATILE 新创建的键为一个非短暂性的键 (数据信息保存在文件中,当系统重新启动时,数据信息恢复) 参数:samDesired KEY_CREATE_LINK 准许生成符号键 参数:lpdwDisposition REG_CREATE_NEW_KEY 键先前不存在,现在被创建。 返回值:如果函数调用成功,则返回 ERROR_SUCCESS。否则返回非零的错误代码。 RegOpenKeyEx() 介绍: 功能:打开一个已经存在的子健。 函数原型:LSTATUS RegOpenKeyEx( 参数:同 RegCreateKeyEx()。 返回值:如果函数调用成功,则返回 ERROR_SUCCESS。否则返回非零的错误代码。 RegCloseKey() 介绍: 函数原型:LONG RegCloseKey( API---注册表编程 标签:mic include 长度 一个 返回值 cst art img err 原文地址:https://www.cnblogs.com/M-Anonymous/p/9370348.html
HKEY hKey, // 键的句柄 (RegCreateKey, RegCreateKey() 的返回值) 或者 预定义的值( 即五个根键)。
LPCTSTR lpSubKey, // 指向 要创建或要打开的子健名称。
DWORD Reserved, // 保留值必须为 0,
LPTSTR lpClass, // 指向一个字符串,该字符串定义了该键的类型。可以为空。
DWORD dwOptions, // 新创建的键的属性。
REGSAM samDesired, // 键的访问权限。
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 指向 SECURITY_ATTRIBUTES 结构的指针。
PHKEY phkResult, // 指向新创建或打开的键的句柄的指针,保存返回的句柄。
LPDWORD lpdwDisposition // 指明键是被创建还是被打开的
);
REG_OPTION_VOLATILE 新创建的键为一个短暂性的键(数据信息保存在内存中)。
REG_OPTION_BACKUP_RESTORE 仅在WINNT中支持,可以提供优先级支持。
KEY_CREATE_SUB_KEY 准许生成子键
KEY_ENUMERATE_SUB_KEYS 准许生成枚举子键
KEY_EXECUTE 准许进行读操作
KEY_NOTIFY 准许更换通告
KEY_QUERY_VALUE 准许查询子键
KEY_ALL_ACCESS 提供完全访问,是上面数值的组合
KEY_READ 是下面数值的组合:
KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY
KEY_SET_VALUE 准许设置子键的数值
KEY_WRITE 是下面数值的组合:
KEY_SET_VALUE、KEY_CREATE_SUB_KEY
REG_OPENED_EXISTING_KEY 键先前已存在,现在被打开。
HKEY hKey,
LPCSTR lpSubKey,
DWORD ulOptions, // 保留值必须为 0。
REGSAM samDesired,
PHKEY phkResult
);
功能:关闭注册表。
功能:删除注册表键值。(不能删除含有子健的子健)
HKEY hKey,
LPCSTR lpSubKey,
REGSAM samDesired,
DWORD Reserved // 保留值必须为 0。
功能:检索一个已打开的注册表句柄中,指定的注册表键的类型和设置值。
HKEY hKey, // 已打开项的句柄,或者指定一个标准项名。
LPCSTR lpValueName, // 要查询注册表键值的名字字符串,注册表键的名字,以空字符结束。
LPDWORD lpReserved, // 保留值必须为 0。
LPDWORD lpType, //用于装载取回数据类型的一个指针变量。
LPBYTE lpData, //用于装载指定值的一个缓冲区,可以为空。
LPDWORD lpcbData //用于装载 lpData 缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字节数。
// 若 lpData 为 NULL, 则也为 NULL。
REG_BINARY 二进制数据
REG_DWORD 32位整数
REG_DWORD_LITTLE_ENDIAN little-endian格式的数据,例如0X12345678以(0X78 0X56 0X34 0X12)方式保存
REG_DWORD_BIG_ENDIAN big-endian格式的数据,例如0X12345678以(0X12 0X34 0X56 0X78)方式保存
REG_EXPAND_SZ 一个包含未扩展环境变量的字符串
REG_LINK 一个Unicode类型的链接
REG_MULIT_SZ 以两个零结尾的字符串
REG_NONE 无类型数值
REG_RESOURCE_LIST 设备驱动资源列表
REG_SZ 一个以零结尾的字符串根据函数使用的字符集类型的不同而设置为Unicode或ANSI类型的字符串。
HKEY hKey,
LPCTSTR lpValueName,
DWORD Reserved,// 保留值必须为0。
DWORD dwType,
CONST BYTE *lpData,
DWORD cbData
);
HKEY hKey,
LPCSTR lpValueName // 指向要删除的值名。
);#include