public override HandleResponse Process() { if (!this.initialized) { throw new Exceptions.CommandNotInitializedException(); } IntPtr handle = ToolHelp.CreateToolhelp32Snapshot(this.SnapshotFlags, this.ProcessID); return(new HandleResponse(handle)); }
public static MODULEENTRY32[] GetRunningModulesOfProcess(int processId) { List <MODULEENTRY32> entries = new List <MODULEENTRY32>(); using (var h = ToolHelp.CreateToolhelp32Snapshot(ToolHelpFlags.TH32CS_SNAPMODULE, processId)) { if (h.IsInvalid) { var code = Marshal.GetLastWin32Error(); } MODULEENTRY32 entry = new MODULEENTRY32() { dwSize = (uint)Marshal.SizeOf(typeof(MODULEENTRY32)) }; var s = ToolHelp.Module32First(h, ref entry); if (!s) { var code = Marshal.GetLastWin32Error(); Console.WriteLine(code); } bool f = true; while (f) { var st = ToolHelp.Module32Next(h, ref entry); var code = Marshal.GetLastWin32Error(); if (code == 18) { f = false; } Console.WriteLine(entry.szExePath); } } return(entries.ToArray()); }
//Create integration test that defines current process count public static uint[] GetRunningProcessIDsSnapshot() { List <uint> processes = new List <uint>(); int processCount = 0; using (var toolhelpHandler = ToolHelp.CreateToolhelp32Snapshot(ToolHelpFlags.TH32CS_SNAPPROCESS | ToolHelpFlags.TH32CS_SNAPNOHEAPS, 0)) { ProcessEntry32 processEntry32 = new ProcessEntry32 { dwSize = (uint)Marshal.SizeOf(typeof(ProcessEntry32)) }; var success = ToolHelp.Process32First(toolhelpHandler, ref processEntry32); if (success) { //catch code there } Console.WriteLine("Error" + Marshal.GetLastWin32Error()); while (ToolHelp.Process32Next(toolhelpHandler, ref processEntry32)) { processes.Add(processEntry32.th32ProcessID); processCount++; //Console.WriteLine("Process id: " + processEntry32.th32ProcessID + " Process Name: " + processEntry32.szExeFile); } Console.WriteLine("Process count: " + processCount); } return(processes.ToArray()); }