public static void WriteTable(GetProcess allProcesses) { int width = 0; StringBuilder line = new StringBuilder(""); for (int i = 0; i < allProcesses.Lenght(); i++) { if (allProcesses.Name(i).Length > width) { width = allProcesses.Name(i).Length; } } Console.Write($" Id\t\tИмя"); Console.SetCursorPosition(width + 20, 0); Console.Write($"Размер КБ\n"); Console.Write(line.Append('=', 15) + " " + line.Append('=', 50) + " ==============\n"); for (int i = 0; i < allProcesses.Lenght(); i++) { StringBuilder memory = new StringBuilder(); Console.Write($" {allProcesses.Id(i)} \t\t{allProcesses.Name(i)}"); Console.SetCursorPosition(width + 20, i + 2); Console.Write($"{allProcesses.VirtualMemorySize(i)} KB\n"); } }
{//Написать консольное приложение Task Manager, которое выводит на экран запущенные процессы и позволяет //завершить указанный процесс. Предусмотреть возможность завершения процессов с помощью указания его ID //или имени процесса. В качестве примера можно использовать консольные утилиты Windows tasklist и taskkill. static void Main(string[] args) { // GetProcess getProcess = new GetProcess(); // TableActiveProcesess.WriteTable(); // GetProcess.Some(); while (true) { Console.Clear(); GetProcess allProcesses = new GetProcess(); TableActiveProcesess.WriteTable(allProcesses); Console.WriteLine("\nВведите ID или имя процесса, чтобы его завершить или Exit - для выхода"); string userValue = Console.ReadLine(); if (userValue.ToLower() == "exit") { return; } if (int.TryParse(userValue, out int id)) { Processes.KillById(id, allProcesses); } else { Processes.KillByName(userValue, allProcesses); } } }
public static void KillByName(string name, GetProcess allProcesses) => allProcesses.Kill(name);
public static void KillById(int id, GetProcess allProcesses) => allProcesses.Kill(id);