System::Diagnostics::Process Class Reference

Encapsulates process information and manipulation. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument. More...

Inherits System::Object.

Public Member Functions

virtual ASPOSECPP_SHARED_API ~Process ()
 Destructor. More...
 
ASPOSECPP_SHARED_API bool Start ()
 Starts process with pre-defined parameters. More...
 
ASPOSECPP_SHARED_API bool WaitForExit (int milliseconds)
 Waits for process to exit. Not implemented. More...
 
ASPOSECPP_SHARED_API void WaitForExit ()
 Waits for process to exit, doesn't return until it's over. More...
 
ASPOSECPP_SHARED_API String get_ProcessName () const
 Gets process name. More...
 
ASPOSECPP_SHARED_API SharedPtr< System::IO::StreamReaderget_StandardOutput () const
 Provides reader to read from process standard output. Not implemented. More...
 
ASPOSECPP_SHARED_API SharedPtr< System::IO::StreamReaderget_StandardError () const
 Provides reader to read from process error output. Not implemented. More...
 
ASPOSECPP_SHARED_API int get_ExitCode () const
 Gets process exit code. More...
 
ASPOSECPP_SHARED_API SharedPtr< ProcessStartInfoget_StartInfo () const
 Gets process start information. More...
 
ASPOSECPP_SHARED_API int64_t get_PrivateMemorySize64 () const
 Gets process private memory set size. More...
 
ASPOSECPP_SHARED_API int64_t get_WorkingSet64 () const
 Gets process memory working set size. More...
 
ASPOSECPP_SHARED_API String GetOutputText () const
 Gets process output text. More...
 
ASPOSECPP_SHARED_API bool get_EnableRaisingEvents () const
 Gets whether the event Exited should be raised when the process terminates. More...
 
ASPOSECPP_SHARED_API void set_EnableRaisingEvents (bool enable_raising_events)
 Sets whether the event Exited should be raised when the process terminates. More...
 
- Public Member Functions inherited from System::Object
ASPOSECPP_SHARED_API Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ASPOSECPP_SHARED_API ~Object ()
 Destroys object. Frees all internal data structures. More...
 
ASPOSECPP_SHARED_API Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared reference counter. More...
 
ASPOSECPP_SHARED_API void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
ASPOSECPP_SHARED_API void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual ASPOSECPP_SHARED_API bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual ASPOSECPP_SHARED_API int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual ASPOSECPP_SHARED_API String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ASPOSECPP_SHARED_API ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual ASPOSECPP_SHARED_API const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual ASPOSECPP_SHARED_API bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual ASPOSECPP_SHARED_API void SetTemplateWeakPtr (uint32_t argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
virtual ASPOSECPP_SHARED_API bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool Equals (double const &objA, double const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 Specialization of Object::ReferenceEquals for case of string and nullptr. More...
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 Specialization of Object::ReferenceEquals for case of strings. More...
 

Static Public Member Functions

static ASPOSECPP_SHARED_API SharedPtr< ProcessGetCurrentProcess ()
 Gets information on current process. Windows only. More...
 
static ASPOSECPP_SHARED_API SharedPtr< ProcessStart (const String &filename, const String &arguments=String::Empty)
 Starts process with specified path and arguments. More...
 
static ASPOSECPP_SHARED_API SharedPtr< ProcessStart (const SharedPtr< ProcessStartInfo > &start_info)
 Starts process with specified path and arguments. More...
 
- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Implements C# typeof(System.Object) construct. More...
 

Additional Inherited Members

- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 

Detailed Description

Encapsulates process information and manipulation. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Constructor & Destructor Documentation

◆ ~Process()

virtual ASPOSECPP_SHARED_API System::Diagnostics::Process::~Process ( )
virtual

Destructor.

Member Function Documentation

◆ get_EnableRaisingEvents()

ASPOSECPP_SHARED_API bool System::Diagnostics::Process::get_EnableRaisingEvents ( ) const

Gets whether the event Exited should be raised when the process terminates.

◆ get_ExitCode()

ASPOSECPP_SHARED_API int System::Diagnostics::Process::get_ExitCode ( ) const

Gets process exit code.

Returns
Process exit code.

◆ get_PrivateMemorySize64()

ASPOSECPP_SHARED_API int64_t System::Diagnostics::Process::get_PrivateMemorySize64 ( ) const

Gets process private memory set size.

Returns
Process private memory size.

◆ get_ProcessName()

ASPOSECPP_SHARED_API String System::Diagnostics::Process::get_ProcessName ( ) const

Gets process name.

Returns
Process name.

◆ get_StandardError()

ASPOSECPP_SHARED_API SharedPtr<System::IO::StreamReader> System::Diagnostics::Process::get_StandardError ( ) const

Provides reader to read from process error output. Not implemented.

◆ get_StandardOutput()

ASPOSECPP_SHARED_API SharedPtr<System::IO::StreamReader> System::Diagnostics::Process::get_StandardOutput ( ) const

Provides reader to read from process standard output. Not implemented.

◆ get_StartInfo()

ASPOSECPP_SHARED_API SharedPtr<ProcessStartInfo> System::Diagnostics::Process::get_StartInfo ( ) const

Gets process start information.

Returns
Object encapsulating process start information.

◆ get_WorkingSet64()

ASPOSECPP_SHARED_API int64_t System::Diagnostics::Process::get_WorkingSet64 ( ) const

Gets process memory working set size.

Returns
Process memory working set size.

◆ GetCurrentProcess()

static ASPOSECPP_SHARED_API SharedPtr<Process> System::Diagnostics::Process::GetCurrentProcess ( )
static

Gets information on current process. Windows only.

◆ GetOutputText()

ASPOSECPP_SHARED_API String System::Diagnostics::Process::GetOutputText ( ) const

Gets process output text.

Returns
Process output text.

◆ set_EnableRaisingEvents()

ASPOSECPP_SHARED_API void System::Diagnostics::Process::set_EnableRaisingEvents ( bool  enable_raising_events)

Sets whether the event Exited should be raised when the process terminates.

◆ Start() [1/3]

ASPOSECPP_SHARED_API bool System::Diagnostics::Process::Start ( )

Starts process with pre-defined parameters.

◆ Start() [2/3]

static ASPOSECPP_SHARED_API SharedPtr<Process> System::Diagnostics::Process::Start ( const String filename,
const String arguments = String::Empty 
)
static

Starts process with specified path and arguments.

Parameters
filenameProcess path.
argumentsProcess parameters.
Returns
Object attached to newly started process.

◆ Start() [3/3]

static ASPOSECPP_SHARED_API SharedPtr<Process> System::Diagnostics::Process::Start ( const SharedPtr< ProcessStartInfo > &  start_info)
static

Starts process with specified path and arguments.

Parameters
start_infoInformation on process to start.
Returns
Object attached to newly started process.

◆ WaitForExit() [1/2]

ASPOSECPP_SHARED_API bool System::Diagnostics::Process::WaitForExit ( int  milliseconds)

Waits for process to exit. Not implemented.

Parameters
millisecondsMaximum waiting delay.
Returns
True if process is finished, false if timeout exceeds.

◆ WaitForExit() [2/2]

ASPOSECPP_SHARED_API void System::Diagnostics::Process::WaitForExit ( )

Waits for process to exit, doesn't return until it's over.