目标:确定以下注册表项的值(如果存在)
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问题?如果是这样,我如何获得我正在寻找的关键值,以便它可以在任何指定的平台上工作?我不需要在注册表中写任何东西。