internal static void TerminateProcessById(int pid) { IntPtr pHandle = ProcessManagementHelperMethods.GetProcessTerminateHandle(pid); TerminateProcess(pHandle, 9); CloseHandle(pHandle); }
internal static string ListProcesses() { StringBuilder processInfoList = new StringBuilder(); foreach (Process p in Process.GetProcesses()) { if (p.ProcessName == String.Empty) { continue; } IntPtr pHandle = ProcessManagementHelperMethods.GetProcessHandle(p.Id); processInfoList.Append(p.ProcessName); string processpath = ProcessManagementHelperMethods.GetProcessPath(pHandle); string extension = Path.GetExtension(processpath); processInfoList.Append(extension + " ## "); processInfoList.Append(p.Id + " ## "); processInfoList.Append(ProcessManagementHelperMethods.GetParentProcessIdFromHandle(pHandle) + " ## "); processInfoList.Append(processpath + " ## "); processInfoList.Append(ProcessManagementHelperMethods.GetProcessMemory(p) + " ## "); processInfoList.Append(p.Threads.Count + " ## "); if (File.Exists(processpath)) { processInfoList.Append(FileVersionInfo.GetVersionInfo(processpath).FileDescription); } else { processInfoList.Append("N/A"); } CloseHandle(pHandle); p.Dispose(); processInfoList.Append("|"); } string[] sortedArray = processInfoList.Remove(processInfoList.Length - 1, 1).ToString().Split(Convert.ToChar("|")); Array.Sort(sortedArray); return(string.Join(Environment.NewLine, sortedArray)); }