在程序中启动或关闭另一个程序
来源:互联网 发布:学生电脑绘画软件 编辑:程序博客网 时间:2024/05/02 22:12
TO Start it:
for Symbian 8 and earlier :
#include <eikdll.h>
TInt err = EikDll::StartExeL(_L("c://system//apps//test.exe"));
for Symbian 9, for Server or Console application :
#include <apgcli.h> // link against apgrfx.lib
#include <apacmdln.h> // link against apparc.lib
TThreadId app_threadid;
CApaCommandLine* cmdLine;
cmdLine=CApaCommandLine::NewLC();
cmdLine->SetExecutableNameL(_L("test.exe"));
cmdLine->SetCommandL( EApaCommandRun);
RApaLsSession ls;
User::LeaveIfError(ls.Connect());
TInt err=ls.StartApp(*cmdLine,app_threadid);
ls.Close();
CleanupStack::PopAndDestroy();// cmdLine
void StartOtherApp()
{
TUid appUid(TUid::Uid(0x02af1382));
RApaLsSession ras;
User::LeaveIfError(ras.Connect());
CleanupClosePushL(ras);
TApaAppInfo appInfo;
ras.GetAppInfo(appInfo, appUid)
CApaCommandLine *cmd = CApaCommandLine::NewL();
cmd->SetLibraryNameL(appInfo.iFullName);
cmd->SetCommandL(EApaCommandRun);
ras.StartApp(*cmd);
CleanupStack::PopAndDestory(cmd);
CleanupStack::Pop();
ras.Close();
}
for Symbian 9, for View-based application :
#include <apgcli.h> // link against apgrfx.lib
const TUid KAppUid={0x12345678};
_LIT(KDocName,"C://Data//document.txt");
TThreadId app_threadid;
RApaLsSession ls;
User::LeaveIfError(ls.Connect());
TInt err=ls.StartDocument(KDocName, KAppUid, app_threadid);
ls.Close();
for Symbian 9, RProcess :
_LIT(KMyExeFile,"test.exe");
_LIT(KMyExeFileCmd,"first_argument second third");
RProcess proc;
User::LeaveIfError(proc.Create(KMyExeFile,KMyExeFileCmd));
// start the process running! Don't forget this.
proc.Resume();
proc.Close();// Closes the handle, not the process.
To stop it
First, you need to find the process
On Symbian 9, process name is in the following format:
<name>[<UID3>]<instance number>
where: <name> - the name of executable or the name of Console - so remember it can be changed;
<UID3> - UID3 of executable, in lowercase HEX, 8 digits, always the same;
<instance number> - instance number, 4 digits, starting from 0001. For example name of kernel process is:
ekern.exe[100041af]0001
Killing:
Note: For S60 3rd Edition development, you are required the PowerMgmt capability to achieve this task.
TFindProcess processFinder(_L("test.exe*"));// by name, case-sensitive
//or
//TFindProcess processFinder(_L("*[12345678]*")); // by UID3
TFullName result;
RProcess processHandle;
while ( processFinder.Next(result)== KErrNone)
{
User::LeaveIfError(processHandle.Open( processFinder, EOwnerThread));
processHandle.Kill(KErrNone);
processHandle.Close();
}
- 在程序中启动或关闭另一个程序
- 在程序中启动另一个程序
- 在c++中从一个程序中启动和关闭另一个程序
- 从一个程序中启动和关闭另一个程序
- 从一个程序中启动和关闭另一个程序
- 从一个程序中启动和关闭另一个程序
- Android 在一个程序中启动另一个程序和启动另一个程序的服务
- Android 在一个程序中启动另一个程序
- Android 在一个程序中启动另一个程序
- Android 在一个程序中启动另一个程序
- Android 在一个程序中启动另一个程序
- Android 在一个程序中启动另一个程序
- Android 在一个程序中启动另一个程序
- Android 在一个程序中启动另一个程序
- IOS在一个程序中启动另一个程序
- IOS在一个程序中启动另一个程序
- Android 在一个程序中启动另一个程序
- Android 在一个程序中启动另一个程序
- C/C++中函数指针的含义
- Linux上批量删除.svn目录
- 算法 - 插入排序(C#)
- C语言---回调函数------------->解析
- c++编译小错误解决2009_10_10(不断增加中)
- 在程序中启动或关闭另一个程序
- Flex和Silverlight的技术比较
- 回调函数
- route命令
- VB 控件的大小随Form增大而增大,变小而变小
- 正则表达式教程1
- 《诗盗·网络记黑》
- 致命ID 这个电影很经典
- Winwos live Write CSDN的测试