適用版本:
Serire 60 3rd Edition
具體方案: 在3版中使用了新的Startup List Management API實現開機自啟動。需要應用程式實現開機自動啟動,需要完成以下步驟: 1. 在項目的data目錄下建立一個資源檔,名字為XXXXXX.rss, XXXXXX為需要啟動的程式的UID3,比如:EA4AB17C。 在資源檔中填入以下內容:
#include <startupitem.rh> RESOURCE STARTUP_ITEM_INFO startexe { executable_name = "\\sys\\bin\\YourAppName.exe"; //換成你程式名字 recovery = EStartupItemExPolicyNone; }
2. 在你的專案檔.mmp中加入該資源檔
SOURCEPATH ..\data START RESOURCE XXXXXX.rss END
3.更新你的打包PKG檔案,注意,該資源檔只能安裝在C盤,不要忘記中括弧:
“\epoc32\data\XXXXXX.rsc”- “c:\private\101f875a\import\[XXXXXX].rsc”
這樣你的程式經過重新編譯和打包,使用開發人員認證簽名以後就可以實現開機自啟動了。
如果你希望在根據設定配置程式是否開機自啟動,你還需要完成一下步驟: 1. 修改程式的註冊資源檔YourAppName_reg.rss,添加如下代碼
#include <appinfo.rh> #include <uikon.rh> RESOURCE APP_REGISTRATION_INFO { //原來的代碼 opaque_data = r_startup_detect; } RESOURCE NUMBER_INT8 r_startup_detect {value = 1;}
2 重載AppUi中的ProcessCommandParametersL()函數
Bool CYourAppNameAppUi::ProcessCommandParametersL( CApaCommandLine &aCommandLine ) { if(aCommandLine.OpaqueData().Length() > 0) { // 此處為使用者手動啟動 } else { // 此處為程式開機後自動啟動,如果設定為開機不自動啟動, 在此處調用Exit()函數退出。 } return CEikAppUi::ProcessCommandParametersL( aCommandLine ); }
----------------------------------------------