Вывод информации по процессу - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, не могу понять Работа в консоли: И так мне нужно ввести название процесса в консоль, и после появиться информация о процессе, как сделать проверку по диспетчеру задач? (например если я ввожу в консоль: explorer - то сделать вывод путь к нему и дальнейшие действие..., если же какой-то другой не понятный ( Shwabra - то мол такого процесса не существует! ) Возможно это покажется легкой задачей, но мой утомленный мозг с этой задачей не справляется ) Так вот не могу понять как реализовать?! P.S: Как мне всё это совместить? 1 - Вывод путь: Process.Start("что ввели в консоли - как сюда это впихнуть?"); 2 - После вывода путь: сделать дальнейшее действие, например, убить процесс: или ввести другой процесс: или возврат сделать к меню! Как это провернуть? P.P.S: Кода нету сам не могу понять поэтому простите!
Ну вот что-то типо этого:
using System; 
using System.Runtime.InteropServices; 
 
namespace BSOD 
{ 
    class Program 
    { 
        [DllImport("ntdll.dll", CharSet = CharSet.Unicode)] 
        private static extern int RtlSetProcessIsCritical(bool bNew, object pbOld, bool bNeedScb); 
 
        static void Main(string[] args) 
        { 
            bool? pbOld = null; 
            object pdOldO = pbOld; 
            RtlSetProcessIsCritical(true, pdOldO, false); 
            Console.Write("Делаем бсод? y/n: "); 
            string w00t = Console.ReadLine().ToLower(); 
            if (w00t == "y")   // То есть если мы нажимаем y то нас перекидывает, если другая клавиша,то другое действие..// Я вообщем за это спрашиваю :)
                Environment.Exit(0); 
            else 
            { 
                RtlSetProcessIsCritical(false, pdOldO, false); 
                Console.WriteLine("u mad ;)"); 
            } 
            Console.ReadLine(); 
        } 
    } 
}

Решение задачи: «Вывод информации по процессу»

textual
Листинг программы
using System;
using System.Linq;
using System.Diagnostics;
using System.Text;
namespace ConsoleTests1
{
    class Program
    {
 
        static void Main(string[] args)
        {
 
            Console.WriteLine("Commands:\n0 = process list\n1 = get process info by name (format: 1 process_id) ex: 1 5096\nexit = exit this application");
            string line;
            while((line = Console.ReadLine().ToLower()) != "exit")
            {
                if(line == "0")
                {
                    StringBuilder sb = new StringBuilder();
                    Process.GetProcesses().ToList().ForEach(
                        proc =>
                        {
                            //Here you can write whatever you want from proc
                            sb.AppendFormat("pid: {0}, name: {1}\n", proc.Id, proc.ProcessName);
                        });
 
                    Console.WriteLine(sb);
                }
 
                if(line.StartsWith("1"))
                {
                    try
                    {
                        string[] cmdSplit = line.Split(new char[] { ' ' });
 
                        int processId = int.Parse(cmdSplit[1]);
 
                        Process proc = Process.GetProcessById(processId);
                        if(proc == null)
                        {
                            Console.WriteLine("Invalid process id specified");
                            continue;
                        }
 
                        Console.WriteLine("Selected process commands:\n0 = kill\n1 = show full path\n2 = exit process menu");
 
                        while((line = Console.ReadLine()) != "2")
                        {
                            if(line == "0")
                            {
                                proc.Kill();
                                break;
                            }
 
                            if(line == "1")
                            {
                                Console.WriteLine("Path: {0}", proc.MainModule.FileName);
                            }
                        }
 
                        Console.WriteLine("Process menu exited");
 
 
                        
                    }
                    catch(FormatException)
                    {
                        Console.WriteLine("Failed to process cmd id 1 [format]");
                    }
                    catch(IndexOutOfRangeException)
                    {
                        Console.WriteLine("Failed to process cmd id 1 [index out of range]");
                    }
                    catch(Exception)
                    {
                        Console.WriteLine("Failed to process cmd id 1 [unknown error]");
                    }
                }
            }
 
 
            //Pause
            Console.ReadKey();
 
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы