关于RegDeleteKeyEx()的问题
我想做一个开机自动运行,自动运行的代码写好了,可以写注册表,但删除注册表项错了,具体如下。
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;}