設置Qt程序在Windows開機后自動運行


(轉自:http://blog.csdn.net/weiren2006/article/details/7443362) 

主要原理是修改Windows的注冊表來實現的,Qt的QSettings提供了訪問ini,注冊表的功能

//讀取注冊表的信息,讓程序自啟動
voidMainWindow::Readregedit(bool isAutoRun)
{
    QSettings*reg=newQSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",QSettings::NativeFormat);
    //開機自動運行
    if(isAutoRun)
    {
         reg->setValue("app",QApplication::applicationFilePath());
    }
    else
    {
      reg->setValue("app","");
    }
}

//開機自啟動,主窗體隱藏 if(argc>1&&(argv[1]==(char*)"//min")) {   w.hide(); } else {   w.showNormal(); }

 

 

 
        
PS:開機啟動的時候,小托盤圖標有可能不能顯示出來,可以利用資源文件里面的圖標,
     作為小托盤,這樣就可以解決這個問題。


讓軟件在系統啟動時自動運行,可通過修改注冊表實現。

在\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中添加需啟動的程序路徑,代碼如下:

 

voidautoStart(boolflag)
{
//寫入注冊表,開機自啟動
HKEYhKey;
//找到系統的啟動項
LPCTSTRlpRun=(wchar_t*)QString("Software\\Microsoft\\Windows\\CurrentVersion\\Run").utf16();
//打開啟動項Key
longlRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE,lpRun,0,KEY_WRITE,&hKey);
if(lRet==ERROR_SUCCESS)
{
DWORDdwRet=QApplication::applicationFilePath().length()*2;
//添加一個子Key,並設置值
if(flag==true)
{
lRet=RegSetValueEx(hKey,(WCHAR*)QString("test").utf16(),0,REG_SZ,
(BYTE*)QApplication::applicationFilePath().utf16(),dwRet);
}
else
{
lRet=RegSetValueEx(hKey,(WCHAR*)QString("test").utf16(),0,REG_SZ,
(BYTE*)"",dwRet);
}
//關閉注冊表
RegCloseKey(hKey);
if(lRet!=ERROR_SUCCESS)
{
qDebug("error");
}
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM