小编Jos*_*osh的帖子

RegGetValue 问题

我正在尝试用 C++ 编写(我认为是)一个简单的脚本来搜索注册表(特别是 SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall)并返回 DisplayName 值的值。

我已经浏览了 MSDN 文档,并在谷歌上搜索了数小时,不幸的是我被卡住了。

#define BUFFER 8192
char value[255];
DWORD BufferSize = BUFFER;

if(RegGetValue(HKEY_LOCAL_MACHINE,
    _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"),
    _T("DisplayName"),
    RRF_RT_ANY,
    NULL,
    (PVOID)&value,
    &BufferSize)
    )
{
    _tprintf(TEXT("(%d) %s - %s\n"), i+1, achKey, value);
}
Run Code Online (Sandbox Code Playgroud)

现在,我需要能够将 achKey 附加到 RegGetValue 的第二个参数,以便在循环遍历每个子项时获取正确的值。

我已经尝试了一百万种不同的东西,不幸的是我在 C++ 方面的经验非常有限,而且我的谷歌技能显然也需要一些工作。

编辑:achKey 是密钥的名称:例如:NVIDIA 驱动程序

因此,附加时,第二个参数应为:

SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\NVIDIA Drivers
Run Code Online (Sandbox Code Playgroud)

这是关于 RegGetValue 的 MSDN 参考:http : //msdn.microsoft.com/en-us/library/ms724868%28v=vs.85%29.aspx

我也尝试过类似的事情:

wcscat(_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"), achKey)
Run Code Online (Sandbox Code Playgroud)

它会编译,但是当运行时,它崩溃了。

c++ registry winapi

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

registry ×1

winapi ×1