This topic has not yet been rated - Rate this topic

ProcessModule Class

Represents a.dll or .exe file that is loaded into a particular process.

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Diagnostics.ProcessModule

Namespace:  System.Diagnostics
Assembly:  System (in System.dll)
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class ProcessModule : Component

The ProcessModule type exposes the following members.

  Name Description
Public property BaseAddress Gets the memory address where the module was loaded.
Protected property CanRaiseEvents Gets a value indicating whether the component can raise an event. (Inherited from Component.)
Public property Container Gets the IContainer that contains the Component. (Inherited from Component.)
Protected property DesignMode Gets a value that indicates whether the Component is currently in design mode. (Inherited from Component.)
Public property EntryPointAddress Gets the memory address for the function that runs when the system loads and runs the module.
Protected property Events Gets the list of event handlers that are attached to this Component. (Inherited from Component.)
Public property FileName Gets the full path to the module.
Public property FileVersionInfo Gets version information about the module.
Public property ModuleMemorySize Gets the amount of memory that is required to load the module.
Public property ModuleName Gets the name of the process module.
Public property Site Gets or sets the ISite of the Component. (Inherited from Component.)
Top
  Name Description
Public method CreateObjRef Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (Inherited from MarshalByRefObject.)
Public method Dispose() Releases all resources used by the Component. (Inherited from Component.)
Protected method Dispose(Boolean) Releases the unmanaged resources used by the Component and optionally releases the managed resources. (Inherited from Component.)
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Releases unmanaged resources and performs other cleanup operations before the Component is reclaimed by garbage collection. (Inherited from Component.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetLifetimeService Retrieves the current lifetime service object that controls the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Protected method GetService Returns an object that represents a service provided by the Component or by its Container. (Inherited from Component.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method InitializeLifetimeService Obtains a lifetime service object to control the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Protected method MemberwiseClone() Creates a shallow copy of the current Object. (Inherited from Object.)
Protected method MemberwiseClone(Boolean) Creates a shallow copy of the current MarshalByRefObject object. (Inherited from MarshalByRefObject.)
Public method ToString Converts the name of the module to a string. (Overrides Component.ToString().)
Top
  Name Description
Public event Disposed Occurs when the component is disposed by a call to the Dispose method. (Inherited from Component.)
Top

A module is an executable file or a dynamic link library (DLL). Each process consists of one or more modules. You can use this class to get information about the module.

The following code sample demonstrates how to use the ProcessModule class to get and display information about all the modules that are used by the Notepad.exe application.


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("Properties of the modules  associated "
   +"with 'notepad' are:");
// Display the properties of each of the modules.
for( int i=0;i<myProcessModuleCollection.Count;i++)
{
   myProcessModule = myProcessModuleCollection[i];
   Console.WriteLine("The moduleName is "
      +myProcessModule.ModuleName);         
   Console.WriteLine("The " +myProcessModule.ModuleName + "'s base address is: "
      +myProcessModule.BaseAddress);
   Console.WriteLine("The " +myProcessModule.ModuleName + "'s Entry point address is: "
      +myProcessModule.EntryPointAddress);
   Console.WriteLine("The " +myProcessModule.ModuleName + "'s File name is: "
      +myProcessModule.FileName);
}
// Get the main module associated with 'myProcess'.
myProcessModule = myProcess.MainModule;
// Display the properties of the main module.
Console.WriteLine("The process's main moduleName is:  "
   +myProcessModule.ModuleName);     
Console.WriteLine("The process's main module's base address is: "
   +myProcessModule.BaseAddress);
Console.WriteLine("The process's main module's Entry point address is: "
   +myProcessModule.EntryPointAddress);
Console.WriteLine("The process's main module's File name is: "
   +myProcessModule.FileName);
myProcess.CloseMainWindow();


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
  • LinkDemand  

    for full trust for the immediate caller. This class cannot be used by partially trusted code.

  • InheritanceDemand  

    for full trust for inheritors. This class cannot be inherited by partially trusted code.

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ