ProcessModule::BaseAddress Property

 

Gets the memory address where the module was loaded.

Namespace:   System.Diagnostics
Assembly:  System (in System.dll)

public:
property IntPtr BaseAddress {
	IntPtr get();
}

Property Value

Type: System::IntPtr

The load address of the module.

The following code example creates a new process for the Notepad.exe application. The code iterates through the ProcessModuleCollection class to obtain a ProcessModule object for each module in the collection. The ModuleName and BaseAddress properties are used to display the module name and the memory address where each module was loaded.

Process^ myProcess = gcnew Process;

// Get the process start information of notepad.
ProcessStartInfo^ myProcessStartInfo = gcnew ProcessStartInfo( "notepad.exe" );

// Assign 'StartInfo' of notepad to 'StartInfo' of 'myProcess' Object*.
myProcess->StartInfo = myProcessStartInfo;

// Create a notepad.
myProcess->Start();
System::Threading::Thread::Sleep( 1000 );
ProcessModule^ myProcessModule;

// Get all the modules associated with 'myProcess'.
ProcessModuleCollection^ myProcessModuleCollection = myProcess->Modules;
Console::WriteLine( "Base addresses of the modules associated with 'notepad' are:" );

// Display the 'BaseAddress' of each of the modules.
for ( int i = 0; i < myProcessModuleCollection->Count; i++ )
{
   myProcessModule = myProcessModuleCollection[ i ];
   Console::WriteLine( "{0} : {1}", myProcessModule->ModuleName, myProcessModule->BaseAddress );
}
myProcessModule = myProcess->MainModule;

// Display the 'BaseAddress' of the main module.
Console::WriteLine( "The process's main module's base address is: {0}", myProcessModule->BaseAddress );
myProcess->CloseMainWindow();

.NET Framework
Available since 1.1
Return to top
Show: