c++ - 我的 winreg 函数出现错误 2
问题描述
我的代码:
HKEY hKey;
char *path = "SYSTEM\\CurrentControlSet\\Control\\IDConfigDB\\Hardware Profiles\\0001\\HwProfileGuid";
LONG result = RegOpenKeyExA(HKEY_LOCAL_MACHINE, path, 0, KEY_ALL_ACCESS, &hKey);
QString q = QString::number(result);
if (result == ERROR_SUCCESS) {
QMessageBox messageBox1;
messageBox1.critical(0,"Error", "Success");
messageBox1.setFixedSize(500,200);
} else {
QMessageBox messageBox2;
messageBox2.critical(0,"Error", q);
messageBox2.setFixedSize(500,200);
}
我得到的错误:
密钥在我的注册表中的位置:
我认为问题与我将信息放入path
变量中的方式有关,但我不确定。
解决方案
不要传递Computer\\HKEY_LOCAL_MACHINE
给字符串。只是SYSTEM\\CurrentControlSet\\Control\\IDConfigDB\\Hardware Profiles\\0001
因为 HKEY_LOCAL_MACHINE 存在于 RegOpenKey 第一个参数中。并且不要尝试仅打开键 RegSetKeyValue() 的键值,用于在此处写入键值,工作代码:
HKEY hKey;
LONG result = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\IDConfigDB\\Hardware Profiles\\0001", 0, KEY_ALL_ACCESS, &hKey);
cout << result << "\n";
推荐阅读
- mongodb - MongoDB Atlas 连接偶尔会从 Lambda 失败
- html - CSS HTML5 DIV 将所有内容居中对齐
- c - 使用 libpcap 捕获任何接口时无法获取协议
- python - 尝试制作一个条形图,按星级 (1.0 , 2.0, 3.0, 4.0, 5.0) 显示总评分。如何提取和分组它们?
- powershell - 编码后删除子文件夹中的文件
- jquery - 依赖下拉引导选择
- javascript - 如何从 javascript 在 HTML 表中插入数据?
- java - 手动创建的 ID 引发同一实体错误的多个表示
- svelte - 更改对象时dom不更新
- haskell - 针对任何一个的美味 HUnit 测试