【发布时间】:2021-01-12 22:00:50
【问题描述】:
我正在尝试编写一个函数来检查注册表值以查看是否为 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 函数的“子键”和“值”参数中放置什么?
【问题讨论】:
-
您的非代码示例使用
HKEY_CURRENT_USER,但您的代码使用HKEY_LOCAL_MACHINE。