//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()); }