作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图编写一个检查注册表值的功能,以查看Windows上的控制台是否启用了颜色。
Computer\HKEY_CURRENT_USER\Console\VirtualTerminalLevel
如果您通过注册表导航到此处,这是我需要检索的值。它是1或0,其中1被启用0被禁用。
#include <Windows.h>
DWORD val;
DWORD dataSize = sizeof(val);
if (ERROR_SUCCESS == RegGetValueA(HKEY_LOCAL_MACHINE, "Computer\\HKEY_CURRENT_USER\\Console", "VirtualTerminalLevel", RRF_RT_DWORD, nullptr, &val, &dataSize)) {
printf("Value is %i\n", val);
}
else {
printf("Error reading.\n");
}
这是我的尝试。这总是导致“错误读取”。我的问题是,我需要在RegGetValueA函数的“子项”和“值”参数中放置什么?
最佳答案
您为该值指定了错误的路径。请勿在Computer\HKEY_CURRENT_USER
参数中包括lpSubKey
。这仅出于人类可读性考虑,实际上并不是注册表API使用路径的一部分。 lpSubKey
值相对于hKey
根,在这种情况下应为HKEY_CURRENT_USER
,而不是HKEY_LOCAL_MACHINE
。
尝试以下方法:
#include <Windows.h>
DWORD val;
DWORD dataSize = sizeof(val);
if (ERROR_SUCCESS == RegGetValueA(HKEY_CURRENT_USER, “Console", "VirtualTerminalLevel", RRF_RT_DWORD, nullptr, &val, &dataSize)) {
printf("Value is %u”, val);
}
else {
printf("Error reading.\n");
}
关于c++ - RegGetValueA格式/布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64083224/
尝试在 Visual Studio 2010 中编写一个简单的注册表检查脚本,在 XP SP3 x86 上运行。 构建时不会抛出任何错误,但在调试时程序会退出并出现以下错误: The procedur
我是一名优秀的程序员,十分优秀!