關於Qt開機自啓動方法網絡上有無數的博文總結過,這裏我再貼上這段代碼
//NativeFormat在windows下就是系統註冊表
QSettings nsettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",QSettings::NativeFormat);
qDebug() << nsettings.allKeys();
QString napppath = QApplication::applicationFilePath();
QString nappname = QApplication::applicationName();
napppath = napppath.replace("/","\\");
if(nautorun) {
nsettings.setValue(nappname,napppath);
}
else {
nsettings.remove(nappname);
}
這段代碼可以實現我們需要的功能,但是呢。有一個很重要的問題就是需要管理員權限纔可以! 對於使用MINGW32編譯器的時候,使用管理員權限非常麻煩。
但是不要緊,有一個辦法既不要管理員權限,也可以實現開機自啓。
對之前的代碼稍微更改註冊表路徑修改爲
QSettings nsettings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",QSettings::NativeFormat);
關鍵就是HKEY_LOCAL_MACHINE 修改爲 HKEY_CURRENT_USER,寫入這裏是不需要管理員權限的。區別就是HKEY_CURRENT_USER僅僅對當前用戶有效。
所以建議寫入HKEY_CURRENT_USER