内嵌SIS自启动(inline sis autostart) - 黑黑的大鲨鱼的日志- 网易博客

内嵌SIS自启动(inline sis autostart)

2010-06-30 11:56:42 阅读16 评论0 字号:

总结一下内嵌SIS自启动的问题。
一般程序开机自启动,大家把自己的程序用rss的方法做成自启动。但是内嵌到另外一个SIS包中
发现安装完成后,重启手机内嵌SIS不能自启动。可悲的事我居然惊奇的发现魔秀的动态主题用
RSS打包是可以完成自启动的。为什么我的就不行呢?难道是人品问题。

先来看看如何打内嵌SIS吧。
以下就是内嵌SIS的在PKG中的语法
If  NOT PACKAGE(0xUID)//先判断自己的SIS包安装没有
@"E:\Symbian3rd_MR\yourApp\sis\yourApp.sis", (0xUID)
EndIf

哎时间不等人,只能另寻它法来解决此问题了。
创建自己的PLUGIN DLL,用DLL把自己的EXE调起来。

下面看如何实现。
TInt CStart****Recog::StartAppThreadFunction(TAny* )
    {

        User::After(5000000);//等待五S,等系统启动完成
        // create a TRAP cleanup
        CTrapCleanup * cleanup = CTrapCleanup::New();
        TInt err;
        if( cleanup == NULL )
        {
            err = KErrNoMemory;
        }
        else
        {
            TRAP( err, StartAppThreadFunctionL() );
        }
        delete cleanup;

        if (err!=KErrNone)
            User::Panic(_L("autostart"), err);
        return err;
    }

bool CStart****Recog::IsProcessRunning()
{
    bool Ret = false;
    TBuf8<128> aaaa;

    TFileName res;
    TFindProcess find(_L("*"));
    while(find.Next(res) == KErrNone)
    {
        RProcess ph;
        ph.Open(res);

        if(ph.SecureId() == 0x2002397F)// SID of the process we are looking for
        {
            Ret = true;
            ph.Close();
            break;
        }

        ph.Close();
    }

    return Ret;
}

void CStart****Recog::StartAppThreadFunctionL()
    {
        if (IsProcessRunning()) {
            return;
        }
        //在这里可以调起自己的EXE
        TFileName fnAppPath = _L("\\sys\\bin\\yourself.exe");
        RProcess server;

        CleanupClosePushL(server);
        User::LeaveIfError(server.Create(fnAppPath, _L("")));
        server.Resume();
        server.Close();

        CleanupStack::PopAndDestroy();
    }

以上代码在N73上已经测试通过
<#--{zx1}日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--相关文章--> <#--历史上的今天--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构-->
郑重声明:资讯 【内嵌SIS自启动(inline sis autostart) - 黑黑的大鲨鱼的日志- 网易博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——