首页 > 学院 > 开发设计 > 正文

设置开机启动

2019-11-06 08:52:33
字体:
来源:转载
供稿:网友

Qt实现:

bool Util::boot_PRogram(const QString &filePath, bool bEnable){ QFileInfo fileInfo(filePath); if(!fileInfo.exists()) { printf("set %s run with launch PC failed.", filePath); return false; } QSettings pSettingReg("HKEY_LOCAL_MACHINE", QSettings::NativeFormat); //64位系统会自动切换到“HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Windows/CurrentVersion/Run” QString valueStr = "SOFTWARE/Microsoft/Windows/CurrentVersion/Run/" + fileInfo.baseName(); if(bEnable) { pSettingReg.setValue(valueStr, "/"" + QDir::toNativeSeparators(fileInfo.absoluteFilePath()) + "/""); } else { pSettingReg.setValue(valueStr, QString()); } return true;}

MFC实现:

void SetAutoRunOnStart(LPCSTR lpszName,BOOL bAddFlag,LPCSTR lpszEXEPath,BOOL bForAllUser){ TCHAR *pRegPath = _T("SOFTWARE//Microsoft//Windows//CurrentVersion//Run"); HKEY hKey; if(bForAllUser) RegOpenKey(HKEY_LOCAL_MACHINE, pRegPath, &hKey); else RegOpenKey(HKEY_CURRENT_USER, pRegPath, &hKey); CFileStatus st ; CString strEXEFile(lpszEXEPath); if(!CFile::GetStatus(strEXEFile,st)) strEXEFile=__argv[0]; CString strName(lpszName) ; if(strName.IsEmpty()) { int nFind = strEXEFile.ReverseFind('//') ; strName = strEXEFile.Mid(nFind+1) ; int nLen = strName.GetLength() ; strName = strName.Left(nLen-4) ; } LPCSTR pName = (LPCSTR)strName ; if(!bAddFlag) { RegDeleteValue(hKey, pName); } else { strEXEFile += _T(" /OnSysStart"); CONST BYTE *lpData = (BYTE *)(LPCSTR)strEXEFile; DWord dwLen = strEXEFile.GetLength(); RegSetValueEx(hKey, pName, 0, REG_SZ, lpData, dwLen); } RegCloseKey(hKey);}
上一篇:第一篇

下一篇:99%用错销售技巧笔记

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表