Edit

Share via


ProcessModule.BaseAddress Property

Definition

Gets the memory address where the module was loaded.

public:
 property IntPtr BaseAddress { IntPtr get(); };
public IntPtr BaseAddress { get; }
member this.BaseAddress : nativeint
Public ReadOnly Property BaseAddress As IntPtr

Property Value

IntPtr

nativeint

The load address of the module.

Examples

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.

using (Process myProcess = new Process())
{
    // Get the process start information of notepad.
    ProcessStartInfo myProcessStartInfo = new 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(myProcessModule.ModuleName + " : "
            + myProcessModule.BaseAddress);
    }
    // Get the main module associated with 'myProcess'.
    myProcessModule = myProcess.MainModule;
    // Display the 'BaseAddress' of the main module.
    Console.WriteLine("The process's main module's base address is: "
        + myProcessModule.BaseAddress);
    myProcess.CloseMainWindow();
}
Using myProcess As New Process()
    ' Get the process start information of notepad.
    Dim myProcessStartInfo As New 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)
    Dim myProcessModule As ProcessModule
    ' Get all the modules associated with 'myProcess'.
    Dim myProcessModuleCollection As ProcessModuleCollection = myProcess.Modules
    Console.WriteLine("Base addresses of the modules associated " +
                         "with 'notepad' are:")
    ' Display the 'BaseAddress' of each of the modules.
    Dim i As Integer
    For i = 0 To myProcessModuleCollection.Count - 1
        myProcessModule = myProcessModuleCollection(i)
        Console.WriteLine(myProcessModule.ModuleName + " : " +
                          myProcessModule.BaseAddress.ToString())
    Next i
    ' Get the main module associated with 'myProcess'.
    myProcessModule = myProcess.MainModule
    ' Display the 'BaseAddress' of the main module.
    Console.WriteLine("The process's main module's base address is: " +
                      myProcessModule.BaseAddress.ToString())
    myProcess.CloseMainWindow()
End Using

Applies to