Пример #1
0
        internal static void TerminateProcessById(int pid)
        {
            IntPtr pHandle = ProcessManagementHelperMethods.GetProcessTerminateHandle(pid);

            TerminateProcess(pHandle, 9);
            CloseHandle(pHandle);
        }
Пример #2
0
        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));
        }