读取注册表HKLM \ SOFTWARE \ Microsoft \ Windows错误报告\本地转储\值?

时间:2014-11-05 20:54:26

标签: c++ windows registry

目标:确定以下注册表项的值(如果存在)

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows错误报告\本地转储\ DumpCount HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows错误报告\本地转储\ DumpType HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows错误报告\本地转储\ DumpFolder

这些是根据Microsoft instructions设置的,使用regedit。

需要此信息的程序是本机C ++,32位,使用VS2013构建,在以下平台之一上运行:32位XP,32位或64位Vista,32位或64位Windows 7,32 - 或64位Windows 8或8.1。将来,该程序也将具有64位版本。

我的第一次尝试是

UINT dumpCount = AfxGetApp()->GetProfileInt("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Error Reporting\\Local Dumps",
"DumpCount", -1/*nDefault*/);

返回-1(未找到值)。

接下来,我试过

openErr = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows Error Reporting\\Local Dumps", 0, KEY_QUERY_VALUE, &key);
regErr = RegQueryValueEx(key, "DumpCount", 0, &type, (BYTE*)data, &sizeD);

RegOpenKeyEx给出openErr = 2(未找到路径),但

openErr = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft", 0, KEY_QUERY_VALUE, &key);

成功(openErr = 0)。

也许这是一个registry redirector问题?如果是这样,我如何获得我正在寻找的关键值,以便它可以在任何指定的平台上工作?我不需要在注册表中写任何东西。

0 个答案:

没有答案