gpt4 book ai didi

c++ - RegGetValueA格式/布局

转载 作者:行者123 更新时间:2023-12-02 09:58:20 26 4
gpt4 key购买 nike

我试图编写一个检查注册表值的功能,以查看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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com