void SetAutoRun(BOOL bAutoRun) { //设置开机自启动 HKEY hKey; LPCTSTR strRegPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";//找到系统的启动项 if (bAutoRun) { if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) //打开启动项 { TCHAR szModule[_MAX_PATH]; GetModuleFileName(NULL, szModule, _MAX_PATH);//得到本程序自身的全路径 RegSetValueEx(hKey,"QQMusicEx", 0, REG_SZ, (const BYTE*)(LPCSTR)szModule, strlen(szModule)); //添加一个子Key,并设置值,"<span style="font-family: Arial, Helvetica, sans-serif;">QQMusicEx</span> "是应用程序名字(不加后缀.exe) RegCloseKey(hKey); //关闭注册表 } else { //AfxMessageBox("系统参数错误,不能随系统启动"); } } else { if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) { RegDeleteValue (hKey,"QQMusicEx"); RegCloseKey(hKey); } } }
思路:注册表中添加键值,x64会发生重定向(自动定位)