在symbian系统中实现程序自启动(开机和安装后)

来源:互联网 发布:电脑免费相册视频软件 编辑:程序博客网 时间:2024/05/21 03:27

网上 关于程序自启动的实在 太乱了 ,UID3 到底该不该用[]括起来,这个好多个版本,在NOKIA官方看到一篇英文的wiki,UID3没有括起来,我以为是权威,去测试了一下,居然没用,郁闷,后来终于找到一个国人测试成功后分享的文章...

适用范围:S60 3rd, 5th

假设你的自启动应用程序的UID3为:ef37946b
 
1、 在data下新建一个rss文件,取名为 [ef37946b].rss(必须要加上[]),并且只能将这个rss生成的rsc文件打包进自启动程序的sis文件来进行安装才会使本程序自启动成功。
写入如下内容:
 
#include <startupitem.rh>

RESOURCE STARTUP_ITEM_INFO auto_startup_info
    {
    executable_name = "!://sys//bin//MyAutoStart.exe";
    recovery = EStartupItemExPolicyNone;
    }
// 此处的MyAutoStart.exe是你的应用程序文件名。
 
2、 在mmp文件中增加以下代码
 
SOURCEPATH  ../data
START RESOURCE [ef37946b].rss /* 此mmp文件所编译的可执行程序的UID3必须也为ef37946b,否则自启动不会成功。*/
 TARGETPATH    /private/101f875a/import  // 生成的rsc文件名必须要是 "[FFFFFF].rxx"格式
 HEADER
END

//请确保mmp中拥有 ReadUserData 能力,注意"/private/101f875a/import"不能够被更改。
 
3、 在pkg文件中增加以下代码
"$(EPOCROOT)epoc32/data/z/private/101f875a/import[ef37946b].rsc" - "C:/private/101f875a/startup/[ef37946b].rsc"
  和
"$(EPOCROOT)epoc32/data/z/private/101f875a/import[ef37946b].rsc" - "C:/private/101f875a/import/[ef37946b].rsc"
注意,这里的rsc文件必须拷贝到C盘下,否则自启动会失败。

如果是采用Carbide.c++编译,那么你可以使用上述代码,如果是使用makesis命令行打包或者使用.Net编译,那么你需要修改成绝对路径,路径名视你的安装目录而定。
例如:
"C:/Symbian/9.1/S60_3rd_MR/Epoc32/Data/z/private/101f875a/import[ef37946b].rsc" - "C:/private/101f875a/import/[ef37946a].rsc"

原创粉丝点击