windows 新建注册表项函数
时间: 2023-10-25 18:06:31 浏览: 49
Windows 新建注册表项函数可以通过 WinAPI 中的 RegCreateKeyEx 函数来实现。该函数的定义如下:
```
LONG RegCreateKeyEx(
HKEY hKey,
LPCTSTR lpSubKey,
DWORD Reserved,
LPTSTR lpClass,
DWORD dwOptions,
REGSAM samDesired,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
PHKEY phkResult,
LPDWORD lpdwDisposition
);
```
其中参数含义如下:
- `hKey`:要创建子项的父项句柄;
- `lpSubKey`:新项的名称或路径;
- `Reserved`:保留参数,传入 0 即可;
- `lpClass`:指向新项类别字符串的指针,可以传入 NULL;
- `dwOptions`:特定于新项的选项,一般传入 0 即可;
- `samDesired`:访问权限掩码;
- `lpSecurityAttributes`:指向安全描述符的指针,可以传入 NULL;
- `phkResult`:指向一个变量,用于存储新项的句柄;
- `lpdwDisposition`:指向一个变量,用于存储操作的结果,可以传入 NULL。
下面是一个示例代码:
```
#include <windows.h>
int main()
{
HKEY hKey;
DWORD dwDisposition;
LONG lRet;
LPCTSTR lpSubKey = _T("SOFTWARE\\MyApp");
// 打开或创建父项
lRet = RegCreateKeyEx(HKEY_CURRENT_USER, lpSubKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition);
if (lRet != ERROR_SUCCESS) {
return 1;
}
// 关闭注册表句柄
RegCloseKey(hKey);
return 0;
}
```
以上代码会在 HKEY_CURRENT_USER 的 SOFTWARE 节点下创建一个名为 MyApp 的子项。注意,如果该子项已经存在,则只会打开该子项而不会创建新的子项。