5,696,038 members and growing! (13,856 online)
Email Password   helpLost your password?
Languages » C++ / CLI » General     Intermediate

How to use Process Class in Managed C++

By R.selvam

This article explains how to use Process Class in Managed C++ applications
C++/CLI, VC7, VC7.1, C++, Windows, .NETVisual Studio, VS.NET2002, Dev

Posted: 4 Jan 2004
Updated: 4 Jan 2004
Views: 38,694
Bookmarked: 9 times
Announcements
Loading...



Search    
Advanced Search
Sitemap
9 votes for this Article.
Popularity: 3.21 Rating: 3.37 out of 5
2 votes, 22.2%
1
1 vote, 11.1%
2
1 vote, 11.1%
3
2 votes, 22.2%
4
3 votes, 33.3%
5

Introduction

The simplest definition of Process is executing instance of an application. The process contains at least one thread. The thread is a fundamental unit of the operating system. Windows is a multitasking operating system. Every process contains at least one thread. Windows NT family system and Windows 95/98 based system support preemptive multitasking. So, we can work freely for multiple threads and multiple processors.

Process Class

In Microsoft .NET framework all the namespaces derived from Object. The System.Diagnostics namespace provides the information about the process state, start the new process, etc. In this namespace allows to starts the new process, kill process, etc.

In process class allows to monitor local system process information or remote system process information. We also interact with the ProcessThread and ProcessModule classes. The ProcessStartup class provides the arguments passing and etc. ProcessStartInfo Constructor use to initializes the process information.

ProcessStartInfo contains the following properties.

Arguments

The arguments property use to set the argument in file name like ShellExecute function.

Filename

The FileName Property is used to set the application name . We can set this property before starting the process class.

UseShellExecute

If we set this is True we can perform the file operations (like, printing the contents in that file). If we set False we just execute the application.

WindowStyle

We set and get the WindowStyle in process starting time.

WaitForExit

WaitForExit property is to wait for the process fora specified time.

For Example :-

Notepad->waitForExit(1000) // waits 1000 seconds.

Kill

Kill property is to kill the currently running process.

Ex :-  notePad->Kill();

The following code is to start the notepad. It waits 1000 secounds and kills it automatically using kill property in Process class.

// Create Process


Process *notePad = new Process();

// set the filename

notePad->StartInfo->FileName   = "notepad.exe";

// Arguments

notePad->StartInfo->Arguments = "textfile.txt";

//Start the process

notePad->Start();

// Wait for 1000 secounds

notepad->waitForExit(1000);

//Kill the process

notepad->Kill();

Process Thread Class

The Process Thread contains information about the currently running process. We control the threads within the process. We set or get the thread proprieties like low, high. The Process Thread class contains the following properties.

BasePriority

The BasePrority is used to get the priority.

CurrentPriority

The CurrentPriority Class is to get the current priority

PriorityLevel

The PriorityLevel is to Get or set the priority level

ThreadState

The ThreadState is to get the current state

ProcessModule class

The ProcessModule class is to get the information about the process module. In ProcessModule class, properties are used to get the information like get module name, memory size in the module, etc.

The following code explains the use of ProcessModule class to get module name, fileinfo etc.

// Create process

Process *notePad = new Process();

// set filename

notePad->StartInfo->FileName   = "notepad.exe";

//Arguments

notePad->StartInfo->Arguments = "selvam.txt";

//Start

notePad->Start();

//Sleep

System::Threading::Thread::Sleep(1000);

//Create processmodule class

ProcessModule *myProcessModule;
myProcessModule = notePad->MainModule;

String *strFileName, *strModuleName;
int nMemory;

//Get the process file name, Module name etc..

strFileName = myProcessModule->FileName;
strModuleName = myProcessModule->ModuleName;
nMemory = myProcessModule->ModuleMemorySize;

Conclusion

The .NET framework is used to simplify the programming model. So, we can easily interact with the operating system. The Process class is useful to start the new process, stop the existing process and control the process. ProcessModule class is used to get the module information in the running application.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

R.selvam


Selvam is from Dindigul, Tamil Nadu. Basically, he is Bachelor science in Mathematics ( vivekanada College Madurai ) and turned as a Master of computer Application from Kongunadu Arts and Science College, Coimbatore. He has worked on several technologies like C, C++, Managed C++, MFC, Win32 API, ASP , HTML and etc. He takes a lot of interest in reading technical articles and enjoy writing them too. Selvam is very much interested in sharing his knowledge with his peers and has been awarded as a Microsoft India Community Star in 2004 .


Web site: http://www.wincpp.com/
Location: United States United States

Other popular C++ / CLI articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 1 of 1 (Total in Forum: 1) (Refresh)FirstPrevNext
GeneralAnd ApplicationmemberRodolfo Brazil7:04 29 Mar '05  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 4 Jan 2004
Editor: Nishant Sivakumar
Copyright 2004 by R.selvam
Everything else Copyright © CodeProject, 1999-2008
Web13 | Advertise on the Code Project