• Symbian 内嵌SIS自启动(inline sis autostart)(转)


    总结一下内嵌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上已经测试通过
  • 相关阅读:
    fetch
    创建Vue实例传入的option
    Text and Binary modes
    daemon_int
    http 协议 c++代码 获取网页
    asp.net mvc 5 初体验
    win32 音视频相关 api
    setuid和seteuid
    用0x077CB531计算末尾0的个数
    webservice gsoap 小记
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/1851056.html
Copyright © 2020-2023  润新知