Symbian有2种类型的本地程序:
APP是有GUI的程序,因此能够被终端用户使用
EXE通常是服务端或命令行程序,通常隐蔽的运行。没有GUI,不能直接从主菜单运行
运行指南
如果你是一个终端用户想运行APP:它会在你的电话菜单中列出如果它已经安装
当一个EXE程序在主菜单不可见时不能直接运行EXE程序。试着从INBOX运行它(如果你通过红外或蓝牙下载过它,它可能存储在INBOX里)会导致一个安全错误。首先,你需要安装一个文件管理器(比如FileMan或FExplorer),浏览它存储的位置(在我的3650上INBOX的目录在E:\system\Mail\xxx),然后运行它。
运行程序
当你知道运行APP或EXE程序使用哪个API后是非常简单的事。
运行EXE程序:
#include
...
_LIT(KMyAppName, "c:\\system\\Apps\\MyApp\\MyApp.exe");
EikDll::StartExeL(KMyAppName);
下面的代码运行APP比较复杂但允许执行特定的文档
#include
#include
...
_LIT(KMyAppName, "c:\\system\\Apps\\MyApp\\MyApp.app");
_LIT(KMyDocName, "c:\\Documents\\MyApp.dat");
CApaCommandLine * cmd=CApaCommandLine::NewL();
cmd->SetLibraryNameL(KMyAppName);
cmd->SetDocumentNameL(KMyDocName);
cmd->SetCommandL(EApaCommandRun);
EikDll::StartAppL(*cmd);
运行浏览其他的NOKIA程序
如果你打算开始基于Series 60的ROM 程序,在NOKIA论坛查找关于外部程序查看文档的问答可以给你带来收获
下面的代码将开始浏览特定的页:
#include // apgrfx.lib
void NNewLCUtils::StartBrowser(const TDesC& aUrl)
{
HBufC* param = HBufC::NewLC( 256 );
param->Des().Format( _L( "4 %S" ),&aUrl );
// Wap Browser's constants UId
const TInt KWmlBrowserUid = 0x10008D39;
TUid id( TUid::Uid( KWmlBrowserUid ) );
TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
TApaTask task = taskList.FindApp( id );
if ( task.Exists() )
{
HBufC8* param8 = HBufC8::NewLC( param->Length() );
param8->Des().Append( *param );
task.SendMessage( TUid::Uid( 0 ), *param8 ); // Uid is not used
CleanupStack::PopAndDestroy(); // param8
}
else
{
RApaLsSession appArcSession;
User::LeaveIfError(appArcSession.Connect()); // connect to AppArc server
TThreadId id;
appArcSession.StartDocument( *param, TUid::Uid( KWmlBrowserUid ), id );
appArcSession.Close();
}
CleanupStack::PopAndDestroy(); // param
}
----------------------------------------