How to start and stop exe
2010-04-01 13:21
435 查看
http://hi.baidu.com/marktian/blog/item/a7ca44ddee80b3385882ddde.html
To start a exe
Symbian 8 and earlier
#include <eikdll.h>
TInt err = EikDll::StartExeL(_L("c://system//apps//test.exe"));
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
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();
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
"Danger, Will Robinson!"
Killing a process is bad practice as the internal state of the process and of the resources it might have open cannot be controlled. It is recommended that your implement a communication mechanism that would allow you to tell your daemon to release the reserved resources and then exit.
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();
}
http://wiki.forum.nokia.com/index.php/How_to_start_and_stop_exe
To start a exe
Symbian 8 and earlier
#include <eikdll.h>
TInt err = EikDll::StartExeL(_L("c://system//apps//test.exe"));
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
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();
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
"Danger, Will Robinson!"
Killing a process is bad practice as the internal state of the process and of the resources it might have open cannot be controlled. It is recommended that your implement a communication mechanism that would allow you to tell your daemon to release the reserved resources and then exit.
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();
}
http://wiki.forum.nokia.com/index.php/How_to_start_and_stop_exe
相关文章推荐
- 戴尔-卡耐基:《人性的优点 How to stop worrying and start living》
- Oracle 11g Data Guard: How to start and stop Redo Apply
- adb not responding. if you'd like to retry then please manually kill adb.exe and click 'restart'
- Q: How to generate exe install and uninstall file for an eclipse product?
- How to use Pageheap.exe in Windows XP, Windows 2000, and Windows Server 2003
- How to apply Local Group Policy settings silently using the ImportRegPol.exe and Apply_LGPO_Delta.exe utilities.
- How to Disable and Uninstall Protexis Licensing Service (PSIService.exe)
- How to start&stop WMA MSCA(Mobile) port in R12/11i system
- How to start/stop DB instance of Oracle under Linux
- how to find background job and stop them
- How to learn to stop worrying and love machine learning
- How To Disable Tftp.exe, Ftp.exe And Net.exe, COMPLETELY
- shared_ptr or: How I Learn To Stop Worring and Love Resource Management
- 32-bit Assembler is Easy, why and how to develop using the assembler; start learning to program in Assembly now!
- How to learn to stop worrying and love machine learning
- How to stop looking for someone perfect and find someone to love
- How to start learning Hadoop and Mapreduce?
- [zz]How to sign .EXE, .DLL and .CAB files?
- About UID and How to autostart an application on boot up in 3rd- Startup List Management API
- Or How I Learned to Stop Worrying and Love C++ Templates