<pre name="code" class="cpp">/****/ HKEY RegKey; LPCSTR KeyPath=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"); //打开Run注册项 if(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,KeyPath,0,KEY_READ|KEY_WRITE,&RegKey)==ERROR_SUCCESS) { wchar_t lpData[180]; DWORD cbData; DWORD dwType = REG_SZ; char keyValue[]="yourName"; if(::RegQueryValueEx(RegKey,keyValue,0,&dwType,(LPBYTE)lpData,&cbData) == ERROR_SUCCESS) //已存在 { ::RegCloseKey(RegKey);//关闭已经打开的注册项 return TRUE;//已注册值,返回 } else { //不存在注册自启动项 ::RegCloseKey(RegKey);//关闭已经打开的注册项 CString sPath; GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH); if(GetFileAttributes(sPath) != -1) { RegKey=NULL; ::RegOpenKey(HKEY_LOCAL_MACHINE,KeyPath,&RegKey); ::RegSetValueEx(RegKey,_T("yourName"),0,REG_SZ,(const unsigned char*)(LPCTSTR)sPath,sPath.GetLength()); this->UpdateData(FALSE); ::RegCloseKey(RegKey);//关闭已经打开的注册项 return TRUE;//注册表注册自动启动成功 } else { return FALSE; //注册表注册自动启动失败 } } } else { return FALSE;//打开注册表Run项失败 }