using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace ProcessInfoWrite
{
class Program
{
static void Main(string[] args)
{
try
{
Process[] allProc = Process.GetProcesses(); //시스템의 모든 프로세스 정보 출력
int i = 1;
Console.WriteLine("****** 모든 프로세스 정보 ******");
Console.WriteLine("현재 실행중은 모든 프로세스 수 : {0}", allProc.Length);
foreach (Process p in allProc)
{
Console.WriteLine("***** {0}번째 프로세스 ******", i++);
WriteProcessInfo(p);
Console.WriteLine();
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
private static void WriteProcessInfo(Process processInfo)
{
Console.WriteLine("Process : {0}", processInfo.ProcessName);
Console.WriteLine("시작시간 : {0}", processInfo.StartTime);
Console.WriteLine("프로세스 PID : {0}", processInfo.Id);
Console.WriteLine("메모리 : {0}", processInfo.VirtualMemorySize);
}
}
}
Process.GetProcess() 로 현재 실행중인 모든 프로세스의 정보를 가져올 수가 있습니다. 그것을 간단히 화면에 뿌려준 것이죠.
실행화면은 다음과 같습니다.
참 간단하게 현재 실행중인 프로세스의 정보를 가져올 수 있죠. 또 가끔은 현재 실행되고 있는 자기 자신 프로세스의 정보를 가져올 필요도 있을때가 있습니다. 그건 Process.GetCurrentProcess()를 이용하면 간편하게 가져올 수 있습니다.
예제 코드를 한번 보시죠.
using System; using System.Collections.Generic; using System.Diagnostics; namespace ProcessInfoWrite { class Program { static void Main(string[] args) { try { Process proc = Process.GetCurrentProcess(); Console.WriteLine("****** 모든 프로세스 정보 ******"); WriteProcessInfo(proc); } catch (Exception e) { Console.WriteLine(e.Message); } } private static void WriteProcessInfo(Process processInfo) { Console.WriteLine("Process : {0}", processInfo.ProcessName); Console.WriteLine("시작시간 : {0}", processInfo.StartTime); Console.WriteLine("프로세스 PID : {0}", processInfo.Id); Console.WriteLine("메모리 : {0}", processInfo.VirtualMemorySize); } } } 보시는 것과 같이 전체 프로세스를 가져오는 프로그램과 바뀐부분은 많지 않습니다. 그냥 프로세스 정보를 GetCurrentProcess() 메소드를 이용해서 가져왔을 뿐이죠. 그리고 실행 결과는 다음과 같습니다.
이번에는 컴퓨터에서 실행되고 있는 프로세스의 정보를 가져오는 프로그램을 만들어 봤습니다. 이코드를 이용하면 프로세스를 강제 종료하는 프로그램같은것도 만들 수 있겠죠. 메모리 정리도 가능할까요? ㅎ 더 많은 응용을 해보시도록 하시고요. 다음 시간에는 스레드 정보를 출력하는 것을 알아보도록 하겠습니다. 감사합니다 출처 : C# Programming Bible
'.NET > C#' 카테고리의 다른 글
try~catch문(예외처리) (3) | 2010.10.14 |
---|---|
스레드 정보 알아오기... (0) | 2010.10.12 |
C# 소수(Prime Number) 찾기 (0) | 2010.10.12 |
Thread 란? (0) | 2010.10.10 |
Windows Forms의 시작 (2) | 2010.01.19 |
C# Event (0) | 2010.01.18 |
C# delegate (0) | 2010.01.14 |
FileAndDirectory (0) | 2010.01.12 |
C# File Input/Output (1) | 2009.12.24 |
C# Collection (0) | 2009.12.21 |