【发布时间】:2015-07-30 09:46:24
【问题描述】:
我已经在 32 位程序中测试了 RegDeleteTree()。它只删除KEY_WOW64_32KEY 键。是否有类似RegOpenKeyEx() 的函数来指定KEY_WOW64_32KEY 或KEY_WOW64_64KEY?
我已经厌倦了这段代码:
HKEY key = NULL;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\asd"), 0, KEY_READ | KEY_WOW64_64KEY, &key) == ERROR_SUCCESS)
{
long d = RegDeleteTree(key, NULL);
if (d != ERROR_SUCCESS)
{
cout << "Error" << d;
}
else
{
cout << "Success";
}
}
输出为 Success,但注册表项仍存在。我在带有 VS 2013 的 Windows 7 上运行它并编译为 win32 程序而不是 x64。
【问题讨论】:
-
我相信您只需要在
RegOpenKeyEx()调用上设置appropriate flag 并将返回的句柄用作RegDeleteTree()的参数。 -
@Phylogenesis 但是,它不起作用。
-
@zzy:定义“不起作用”。你想达到什么目的?你的实际代码是什么样的?你期望发生什么,它实际上(不)在做什么?有报错码吗?