主要有两个步骤:
1,使用Startup List Management API实现开机自启动
2,重载AppUI中的ProcessCommandParametersL()函数确定是否关闭(自启动后关闭==不启动)
1.1 在data目录下创建一个boot resource file,名字为XXXX.rss, 其中XXXX为UID3。
#include <startupitem.rh>
RESOURCE STARTUP_ITEM_INFO startexe
{
executable_name = [url=file://sys//bin//programToStart.exe] //sys//bin//programToStart.exe[/url] ; //换成你程序名字
recovery = EStartupItemExPolicyNone;
}
1.2更新你的MMP文件
SOURCEPATH ../data
START RESOURCE XXXX.rss
END
1.3更新你的PKG文件, 中括号不要丢了!
“/epoc32/data/yyyy.rsc”- “c:/private/101f875a/import/[yyyy.rsc”
有以下几点限制:必须装在c盘,必须用开发者证书。
如果一切顺利,程序可以自己随着手机开机而自己启动了,但是如何让用户可以在程序中设置让程序不要随机启动呢?
2.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.2 重载AppUI中的ProcessCommandParametersL()函数
Bool CMyAppUi::ProcessCommandParametersL( CApaCommandLine &aCommandLine )
{
if(aCommandLine.OpaqueData().Length() > 0)
{
// 用户手动启动,存在OpaqueData
}
else
{
// 程序自动启动,存在OpaqueData。
// 可以在这里判断是否设置为不自动启动, 调用Exit()函数退出
}
return CEikAppUi::ProcessCommandParametersL( aCommandLine );
}
1,使用Startup List Management API实现开机自启动
2,重载AppUI中的ProcessCommandParametersL()函数确定是否关闭(自启动后关闭==不启动)
1.1 在data目录下创建一个boot resource file,名字为XXXX.rss, 其中XXXX为UID3。
#include <startupitem.rh>
RESOURCE STARTUP_ITEM_INFO startexe
{
executable_name = [url=file://sys//bin//programToStart.exe] //sys//bin//programToStart.exe[/url] ; //换成你程序名字
recovery = EStartupItemExPolicyNone;
}
1.2更新你的MMP文件
SOURCEPATH ../data
START RESOURCE XXXX.rss
END
1.3更新你的PKG文件, 中括号不要丢了!
“/epoc32/data/yyyy.rsc”- “c:/private/101f875a/import/[yyyy.rsc”
有以下几点限制:必须装在c盘,必须用开发者证书。
如果一切顺利,程序可以自己随着手机开机而自己启动了,但是如何让用户可以在程序中设置让程序不要随机启动呢?
2.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.2 重载AppUI中的ProcessCommandParametersL()函数
Bool CMyAppUi::ProcessCommandParametersL( CApaCommandLine &aCommandLine )
{
if(aCommandLine.OpaqueData().Length() > 0)
{
// 用户手动启动,存在OpaqueData
}
else
{
// 程序自动启动,存在OpaqueData。
// 可以在这里判断是否设置为不自动启动, 调用Exit()函数退出
}
return CEikAppUi::ProcessCommandParametersL( aCommandLine );
}