# 실행중인 프로세스 정보 가져오기 / 특정 프로세스 경로 가져오기

2021. 1. 25. 08:27개발/C#

 

64비트 모듈을 불러올 수 없습니다 오류 발생시 

프로젝트 속성 - 빌드 - 32비트 기본 사용 체크 해제

 

 

using System;

using System.Diagnostics;

namespace ProcessCheck

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("번호를 입력하세요. 1. 전체 Process / 2. 개별 Process");

            string result = Console.ReadLine();

            if (result == "1")

            {

                try

                {

                    Process[] allProc = Process.GetProcesses();

                    int i = 1;

                    Console.WriteLine("****** 모든 프로세스 정보 ******");

                    Console.WriteLine("현재 실행중인 모든 프로세스 수 : {0}", allProc.Length);

                    foreach (Process p in allProc)

                    {

                        try

                        {

                            Console.WriteLine("****** {0}번째 프로세스 ******", i++);

                            WriteProcessInfo(p);

                            Console.WriteLine();

                        }

                        catch { }

                    }

                }

                catch (Exception e)

                {

                    Console.WriteLine(e.Message);

                }

                Console.ReadLine();

            }

            else if (result == "2")

            {

                Console.WriteLine("프로세스 이름을 입력하세요 : ");

                string result1 = Console.ReadLine();

                foreach (var Process in Process.GetProcessesByName(result1))

                {

                    Console.WriteLine("Process : {0}", Process.MainModule.FileName);

                    Console.WriteLine("시작시간 : {0}", Process.StartTime);

                    Console.WriteLine("Process PID : {0}", Process.Id);

                    Console.WriteLine("메모리 : {0}", Process.VirtualMemorySize);

                    Console.WriteLine("Process Path : {0}", Process.MainModule.FileName);

                }

                Console.ReadLine();

            }

        }

        private static void WriteProcessInfo(Process processInfo)

        {

            Console.WriteLine("Process : {0}", processInfo.ProcessName);

            Console.WriteLine("시작시간 : {0}", processInfo.StartTime);

            Console.WriteLine("Process PID : {0}", processInfo.Id);

            Console.WriteLine("메모리 : {0}", processInfo.VirtualMemorySize);

            Console.WriteLine("Process Path : {0}", processInfo.MainModule.FileName);

        }

    }

}