S60实现带参数启动进程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.通过一个命令行参数实现带参数启动应用程序://*启动代码,在需要启动一个程序时使用*///[1]定义命令行参数CApaCommandLine*cmd=CApaCommandLine::NewLC();//[2]设置命令类型cmd-SetCommandL(EApaCommandRun);//[3]设置要启动的应用程序名cmd-SetExecutableNameL(_L(HelloWorld.exe));//[4]设置参数,该参数为一个文件名称cmd-SetDocumentNameL(_L(x.txt));//[5]设置参数,该参数为一个字符串cmd-SetTailEndL(_L8(messagetail));//[6]启动程序RApaLsSessionals;User::LeaveIfError(als.Connect());CleanupClosePushL(als);User::LeaveIfError(als.StartApp(*cmd));CleanupStack::PopAndDestroy(2);//*在被启动的应用程序中接收参数*///该功能通过在AppUik中重载CEikAppUi::ProcessCommandParametersL方法实现。TBoolCHello2AppUi::ProcessCommandParametersL(TApaCommandaCommand,TFileName&aDocumentName,constTDesC8&aTail){//接收启动代码中第[4]行参数TFileNamefile=aDocumentName;//接收启动代码中第[2]行参数TApaCommandcom=aCommand;//接收启动代码中第[5]行参数HBufC8*str=aTail.AllocL();deletestr;}2.通过StartDocument实现带参数启动应用程序://*启动代码,在需要启动一个程序时使用*/RApaLsSessionals;TThreadIdid;TUiduid;//被启动程序UIDuid.iUid=0xE469529F;als.Connect();als.StartDocument(_L(hello2.txt),uid,id);als.Close();被启动程序参数接收参考实例1中的参数接收。3.通过RProcess实现带参数启动应用程序://*启动代码,在需要启动一个程序时使用*/RProcess*process=newRProcess();TUidTypeuidtype(KNullUid);process-Create(_L(\\sys\\bin\\HelloWorld.exe),_L(teststring),uidtype);process-Resume();process-Close();deleteprocess;//*在被启动的应用程序中接收参数*/RBuf16buf;buf.Create(50);User::CommandLine(buf);//buf=”teststring”buf.Close();4.通过TFindProcess实现查找一个启动的应用程序://要查找的进程名称_LIT(KPROCESSNAME,Hello2_0xE469529F*);//构造进程搜索对象TFindProcessfindProcess(KPROCESSNAME);TFullNameprocessName;//开始搜索应用程序,通过processName返回结果findProcess.Next(processName);if(processName==KNullDesC){//查找的应用程序未启动}5.向一个启动的应用程序发送消息:TUiduidApp=TUid::Uid(0xE469529F);TApaTaskListtaskList(CEikonEnv::Static()-WsSession());TApaTasktask=taskList.FindApp(uidApp);TBuf256arg;arg.Append(_L(mytext));HBufC8*pBuf;if(task.Exists()){//sendmessagetothetask;uidisnotused,butitdoesn'swork.pBuf=HBufC8::NewL(arg.Length());TPtr8ptr=pBuf-Des();ptr.Copy(arg);nErr=task.SendMessage(TUid::Uid(KUidApaMessageSwitchCreateFileValue),*pBuf);task.BringToForeground();}//*在被启动的应用程序中接收参数*///该功能通过在AppUik中重载CEikAppUi::ProcessMessageL方法实现。voidCHello2AppUi::ProcessMessageL(TUidaUid,constTDesC8&aParams){TUidu=aUid;}

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功