如何在不使用C ++中的RegDeleteKeyEx的情况下在64位树中删除Windows x64中的注册表项?

时间:2009-09-25 11:21:21

标签: registry wow64

我正在开发一个32位安装程序,必须在Win XP以上的环境中运行。我们有一个问题,我们必须在Windows 2k3 x64下删除注册表的x64部分上的注册表项。

使用RegDeleteKeyEx这很容易,但是我无法分发可能调用该函数的可执行文件,因为它不能在Windows XP上运行。我可以很容易地掌握钥匙,我只是看不出我应该如何删除钥匙。

我无法使用RegDeleteKey,因为注册表重定向会阻碍我在x64平台上的努力。我很生气我不能只把它的句柄传递给我的密钥和一个空的/ null子密钥字符串。我无法相信这个API如此破碎。我错过了什么吗?

我现在唯一的想法是调用一个注册表文件或一个单独的可执行文件来为我完成这项工作,但这只是令人难以置信的丑陋而且只会使一个非常糟糕的解决方法变得更糟。还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

为什么在您确定系统是x64系统后,在运行时(使用LoadLibraryGetModuleHandle或类似地方和GetProcAddress)解析RegDeleteKeyEx