@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: TODO - a short description !!!!C# Signature: [DllImport("psapi.dll")] static extern uint GetModuleFileNameEx(IntPtr hProcess, IntPtr hModule, [Out] StringBuilder lpBaseName, [In] [MarshalAs(UnmanagedType.U4)] int nSize); !!!!VB.NET Signature: <DllImport("psapi.dll")> _ Public Shared Function GetModuleFileNameEx(ByVal hProcess As IntPtr, ByVal hModule As IntPtr, <Out()> ByVal lpBaseName As StringBuilder, <[In]()> <MarshalAs(UnmanagedType.U4)> ByVal nSize As Integer) As UInteger End Function !!!!User-Defined Types: None. !!!!Alternative Managed API: Do you know one? Please contribute it! !!!!Notes: I had trouble using the original C# signature above, but found that this one works: [DllImport("psapi.dll", CallingConvention=CallingConvention.StdCall, CharSet=CharSet.Unicode)] static extern uint GetModuleFileNameEx(IntPtr hProcess, IntPtr hModule, [Out] StringBuilder lpBaseName, uint nSize); !!!!Tips & Tricks: Please add some! !!!!Sample Code: Using this method in conjuction with EnumProcessModules: Process[] pc = Process.GetProcessesByName("Communicator"); foreach (Process p in pc) { // Setting up the variable for the second argument for EnumProcessModules IntPtr[] hMods = new IntPtr[1024]; GCHandle gch = GCHandle.Alloc(hMods, GCHandleType.Pinned); // Don't forget to free this later IntPtr pModules = gch.AddrOfPinnedObject(); // Setting up the rest of the parameters for EnumProcessModules uint uiSize = (uint)(Marshal.SizeOf(typeof(IntPtr)) * (hMods.Length)); uint cbNeeded = 0; if (EnumProcessModules(p.Handle, pModules, uiSize, out cbNeeded) == 1) { Int32 uiTotalNumberofModules = (Int32)(cbNeeded / (Marshal.SizeOf(typeof(IntPtr)))); for (int i = 0; i < (int)uiTotalNumberofModules; i++) { StringBuilder strbld = new StringBuilder(1024); GetModuleFileNameEx(p.Handle, hMods[i], strbld, (uint)(strbld.Capacity)); Console.WriteLine("File Path: " + strbld.ToString()); Console.WriteLine(); } Console.WriteLine("Number of Modules: " + uiTotalNumberofModules); Console.WriteLine(); } // Must free the GCHandle object gch.Free(); } Documentation: GetModuleFileNameEx@msdn on MSDN
Edit psapi.GetModuleFi...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.