我正在尝试在注册表的 HKLM 部分下编写一些注册表项。我使用 RegCreateKeyEx() 和 RegSetValueEx() 的方式类似于我见过的一些 MSDN 示例。
但是,RegSetValueEx() 调用失败并出现错误 5,FormatMessage() 表示“访问被拒绝”
我想我需要请求提升权限,但我不知道执行此操作所需的 API 调用?
这是我的代码:
HKEY hk;
DWORD dwDisp;
LONG result = RegCreateKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\MyApp"), 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hk, &dwDisp);
if(result == ERROR_SUCCESS)
{
BYTE value[] = "Hello world!";
result = RegSetValueEx(hk, _T("MyValue"), 0, REG_EXPAND_SZ, value, strlen((char*)value)+1);
if(result != ERROR_SUCCESS)
{
DBG_PRINT2("RegSetValueEx failed with code: %d\n", result);
}
RegCloseKey(hk);
}