RegDeleteKeyEx

场景:关于RegDeleteKeyEx()的有关问题

关于RegDeleteKeyEx()的问题
我想做一个开机自动运行,自动运行的代码写好了,可以写注册表,但删除注册表项错了,具体如下。
C/C++ code

BOOL stopAutoRun()
{    
    //删除注册表键,取消启动
    HKEY hKey;
    //找到系统的启动项
    LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
    //打开启动项Key
    long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);
    if(lRet == ERROR_SUCCESS)
    {
        char pFileName[1024] = {0};
        //得到程序自身的全路径 
        DWORD dwRet = GetModuleFileName(NULL, pFileName, 1024);
        //添加一个子Key,并设置
        lRet = RegDeleteKeyEx(hKey, "NotepadLock", KEY_WOW64_32KEY ,0);

        //在这里调试时,lRet 的值是2,查了下,#define ERROR_FILE_NOT_FOUND 2L
        //为什么会提示不存在??我用regedit看的都是存在的啊?
        
        //关闭注册表
        RegCloseKey(hKey);
        if(lRet!= ERROR_SUCCESS )
        {    if (lRet == ERROR_ACCESS_DENIED)
                ::MessageBox(NULL,"操作失败,请以管理员权限重新运行此程序!","错误",0);
            else
                ::MessageBox(NULL,"操作失败,无法取消开机自动运行","错误",0);
            return FALSE;
        }
        return TRUE;
    }
    ::MessageBox(NULL,"打开注册表错误!","错误",0);
    return FALSE;
}





请问下,这是怎么回事?难道是第二个参数传的不对?

------解决方案--------------------
估计你需要的不是DeleteKey,而是RegDeleteValue