<1>安装后启动运行
在S60 2.x和S60更早的版本上可以在pkg文件里使用"FILERUN,RUNINSTALL,RUNWAITEND" 指令,实现安装后的启动执行.
如:下面的安装包在安装完成以后会执行一个叫other的app完成一些特殊的任务.
//for S60 2.x or former
"C:/Symbian/6.1/Series60/Epoc32/Release/armi/urel/mymainApp.app" -"!:/system/apps/mymainApp/mymainApp.app"
"C:/Symbian/6.1/Series60/Epoc32/Release/armi/urel/mymainApp.rsc" -"!:/system/apps/mymainApp/mymainApp.rsc"
"C:/Symbian/6.1/Series60/Epoc32/Release/armi/urel/mymainApp_caption.rsc" -"!:/system/apps/mymainApp/mymainApp_caption.rsc"
"C:/Symbian/6.1/Series60/Epoc32/Release/armi/urel/mymainApp.aif" -"!:/system/apps/mymainApp/mymainApp.aif"
"other.APP" -"!:/system/apps/mymainApp/other.APP" ,FILERUN,RUNINSTALL,RUNWAITEND
如果需要主程序在安装完成以后启动执行, 则只需要如下的pkg文件格式即可:
"C:/Symbian/6.1/Series60/Epoc32/Release/armi/urel/mymainApp.rsc" -"!:/system/apps/mymainApp/mymainApp.rsc"
"C:/Symbian/6.1/Series60/Epoc32/Release/armi/urel/mymainApp_caption.rsc" -"!:/system/apps/mymainApp/mymainApp_caption.rsc"
"C:/Symbian/6.1/Series60/Epoc32/Release/armi/urel/mymainApp.aif" -"!:/system/apps/mymainApp/mymainApp.aif"
"C:/Symbian/6.1/Series60/Epoc32/Release/armi/urel/mymainApp.app" -"!:/system/apps/mymainApp/mymainApp.app",FILERUN,RUNINSTALL,RUNWAITEND
在S60 3.0上如果要想实现同样的效果pkg文件里必须使用"FILERUN,RUNINSTALL"指令的简写形式:
如下:
//for S60 3.0 or latter
"C:/Symbian/9.1/S60_3rd_mr/Epoc32/data/z/resource/apps/Your.rsc" -"!:/resource/apps/Your.rsc"
"C:/Symbian/9.1/S60_3rd_mr/Epoc32/data/z/resource/apps/Your_aif.mif" -"!:/resource/apps/Your_aif.mif"
"C:/Symbian/9.1/S60_3rd_mr/Epoc32/data/z/private/10003a3f/import/apps/Your_reg.rsc" -"!:/private/10003a3f/import/apps/Your_reg.rsc"
"C:/Symbian/9.1/S60_3rd_mr/Epoc32/release/gcce/urel/Your.exe" -"!:/sys/bin/Your.exe",FR,RI
注意,此时必须使用Symbian sign的证书来对该安装包进行sign, self-sign对FR,RI等指令无效.
<2>开机自动运行
在S60 2.x上的开机自动运行有多种方法,这里不在重复:
在S60 3.0上的开机自动运行需要按一下步骤实现:
1先建一个UID3.rss的文件
文件内容如下:
#include <startupitem.rh>
RESOURCE STARTUP_ITEM_INFO test
{
executable_name = "!://sys//bin//HelloWorldBasic.exe";
recovery = EStartupItemExPolicyNone;
}
其中executable_name 的值为开机要自动运行的目标程序的exe
文件保存为工程的UID3的值,后缀为.rss(如:mmp中 UID 0x0 0xA000017F就保存为A000017F.rss)
2在工程的mmp中加上刚建的A000017F.rss
如:
START RESOURCE A000017F.rss
TARGETPATH resource/apps
END
3在pkg文件;Files to install后加上
"../../../epoc32/data/z/resource/apps/A000017F.rsc" -"c:/private/101f875a/import/[A000017F].rsc"
然后正常编译你的工程,最后需要注意的也是需要用symbian sign的证书对该安装包签名, self-sign无法实现开机自启动功能。