⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uis_autostarter.cpp.svn-base

📁 一个在symbian环境下mdl自启动的列子
💻 SVN-BASE
字号:
#include <apmrec.h>#include <apmstd.h>#include <EIKDLL.H>#include <coeccntx.h>
#include <eikenv.h>
#include <eikappui.h>
#include <eikapp.h>
#include <eikdoc.h>
#include <eikmenup.h>
#include <eikon.hrh>
#include "uis_autostarter.h"const TUid KUidNullRecognizer ={0x09A770B5};/******************************************************************************* 系统要求的函数*******************************************************************************/EXPORT_C CApaDataRecognizerType* CreateRecognizer(){	CApaDataRecognizerType* thing = new CNullRecognizerType(); //构造一个空的CApaDataRecognizerType对象返回给系统	StartThread(); //运行我们需要的程序 在这里需要新开一个线程来做这个事情 系统要求这个函数要立刻返回	return thing;}GLDEF_C TInt E32Dll(TDllReason /*aReason*/){	return KErrNone;}/******************************************************************************* 类型注册类*******************************************************************************/CNullRecognizerType::CNullRecognizerType(): CApaDataRecognizerType(KUidNullRecognizer, CApaDataRecognizerType::ENormal){	iCountDataTypes = 1;}TUint CNullRecognizerType::PreferredBufSize(){	// no buffer recognition yet	return 0;}TDataType CNullRecognizerType::SupportedDataTypeL(TInt /*aIndex*/) const{	return TDataType();}void CNullRecognizerType::DoRecognizeL(const TDesC& /*aName*/, const TDesC8& /*aBuffer*/){	// this function is never called}/******************************************************************************* 自动运行程序的函数*******************************************************************************///开始一个新的线程 用于开启其他程序void StartThread(){	TInt res = KErrNone;		RThread* startAppThread;	startAppThread = new RThread();	User::LeaveIfError(res = startAppThread->Create(_L("Autostart starter"), StartAppThreadFunction, KDefaultStackSize, KMinHeapSize, KMinHeapSize, NULL, EOwnerThread) );	startAppThread->SetPriority(EPriorityNormal/*EPriorityLess*/);	startAppThread->Resume();	startAppThread->Close();}//线程函数 如果运行其他程序的时候出现异常由这个函数捕获TInt StartAppThreadFunction(TAny* /*aParam*/){	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;}//运行一个其他程序void StartAppThreadFunctionL(){	_LIT(KMyAppName, "e:\\system\\Apps\\matrix\\matrix.app"); //需要运行的程序可以从配置文件中读取,这里就直接写在代码中了

	//开始一个App
	CApaCommandLine * cmd=CApaCommandLine::NewL();
	cmd->SetLibraryNameL(KMyAppName);
	//cmd->SetDocumentNameL(KMyDocName); //这里可以设置参数
	cmd->SetCommandL(EApaCommandRun);
	EikDll::StartAppL(*cmd);

	//开始一个Exe
	//EikDll::StartExeL();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -