Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

How to start and stop exe using Symbian C++

From Wiki
Jump to: navigation, search
Article Metadata
Created: giridharn (16 May 2007)
Last edited: hamishwillee (17 Nov 2013)


To start a exe

Symbian OSv9, for View-based application

#include <apgcli.h> // link against apgrfx.lib
const TUid KAppUid={0x12345678};
TThreadId app_threadid;
RApaLsSession ls;
TInt err=ls.StartDocument(KDocName, KAppUid, app_threadid);

Symbian OS v9, RProcess

#include <apgcli.h> // link against apgrfx.lib
_LIT(KMyExeFileCmd,"first_argument second third");
RProcess proc;
// start the process running! Don't forget this.
proc.Close(); // Closes the handle, not the process.

Symbian OS v9, 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->SetCommandL( EApaCommandRun );
RApaLsSession ls;
TInt err=ls.StartApp(*cmdLine,app_threadid);
CleanupStack::PopAndDestroy(); // cmdLine

Symbian OS v8 and earlier

#include <eikdll.h>
TInt err = EikDll::StartExeL(_L("c:\\system\\apps\\test.exe"));

To stop it

First, you need to find the process

On Symbian OS v9, 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:



Warning.pngWarning: 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
//TFindProcess processFinder(_L("*[12345678]*")); // by UID3 - in hex lowercase.
TFullName result;
RProcess processHandle;
while ( processFinder.Next(result) == KErrNone)
User::LeaveIfError(processHandle.Open ( result, EOwnerThread));

Related Links:

Version Hint

Windows Phone: [[Category:Windows Phone]]
[[Category:Windows Phone 7.5]]
[[Category:Windows Phone 8]]

Nokia Asha: [[Category:Nokia Asha]]
[[Category:Nokia Asha Platform 1.0]]

Series 40: [[Category:Series 40]]
[[Category:Series 40 1st Edition]] [[Category:Series 40 2nd Edition]]
[[Category:Series 40 3rd Edition (initial release)]] [[Category:Series 40 3rd Edition FP1]] [[Category:Series 40 3rd Edition FP2]]
[[Category:Series 40 5th Edition (initial release)]] [[Category:Series 40 5th Edition FP1]]
[[Category:Series 40 6th Edition (initial release)]] [[Category:Series 40 6th Edition FP1]] [[Category:Series 40 Developer Platform 1.0]] [[Category:Series 40 Developer Platform 1.1]] [[Category:Series 40 Developer Platform 2.0]]

Symbian: [[Category:Symbian]]
[[Category:S60 1st Edition]] [[Category:S60 2nd Edition (initial release)]] [[Category:S60 2nd Edition FP1]] [[Category:S60 2nd Edition FP2]] [[Category:S60 2nd Edition FP3]]
[[Category:S60 3rd Edition (initial release)]] [[Category:S60 3rd Edition FP1]] [[Category:S60 3rd Edition FP2]]
[[Category:S60 5th Edition]]
[[Category:Symbian^3]] [[Category:Symbian Anna]] [[Category:Nokia Belle]]

This page was last modified on 17 November 2013, at 23:52.
134 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.


Thank you!

We appreciate your feedback.