新手求助,用C++实现一个运行后可删除注册表中的.net framework的可执行exe

时间:2022-09-04 16:01:19
本人初学C,公司研发给了个小任务(见标题),然后我就兴奋了,(第一次做东西!见谅)
用Visual Studio 6.0 写了,运行之后也没告警没报错,但是结果就是删除不了那个键(.net framework),各种调试各种百度,还是没懂是哪出了问题,所以发帖请教一下各位前辈,希望各位能帮我解惑,万分感激!
代码如下:

#include "stdafx.h"
#include "windows.h"
#include "malloc.h"

int _tmain(int argc, _TCHAR* argv[])
{
HKEY hKey;
LPCTSTR SubKey = "SOFTWARE\\Microsoft\\.NETFramework\\v2.0.50727";

    if (RegOpenKeyEx (HKEY_LOCAL_MACHINE,SubKey,0,KEY_ALL_ACCESS,&hKey) !=

        ERROR_SUCCESS)

    {

        printf ("RegOpenKeyEx错误");

        return 0;

    }
if (ERROR_SUCCESS == RegDeleteKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\.NETFramework\\v2.0.50727"))

{

printf ("删除子键成功!\n");

}

else

{

printf ("删除子键失败!\n");

RegCloseKey (hKey);

return 0;

}

RegCloseKey (hKey);

}

运行结果是  删除子键失败。。。

2 个解决方案

#1


你这个RegDeleteKey用到hKey了吗?

#2


被删除的键值不能有子项。删除的一个键值和所有其子项,您需要枚举子项,并单独删除他们。删除键递归,使用 RegDeleteTree 或 SHDeleteKey 函数。 

http://baike.baidu.com/link?url=ghN2f56oyKOXZfZ2IRDuphmC0erntokbGgy0Q3N6wmfp9iG3rboaYh0eqllA5S4edi1LF5TrJUPum94UUazt1K
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

#1


你这个RegDeleteKey用到hKey了吗?

#2


被删除的键值不能有子项。删除的一个键值和所有其子项,您需要枚举子项,并单独删除他们。删除键递归,使用 RegDeleteTree 或 SHDeleteKey 函数。 

http://baike.baidu.com/link?url=ghN2f56oyKOXZfZ2IRDuphmC0erntokbGgy0Q3N6wmfp9iG3rboaYh0eqllA5S4edi1LF5TrJUPum94UUazt1K
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/