2012. 5. 11. 10:25

상황에 따라서 지금 실행중인 프로세스들의 정보를 가저와야 할때가 있습니다.

그런경우 C#에서는 'System.Diagnostics.Process'를 사용합면 됩니다.


//나의 프로세스 정보를 가져옵니다.
System.Diagnostics.Process MyProcess = System.Diagnostics.Process.GetCurrentProcess();

//모든 프로세스의 정보를 가져 옵니다.
System.Diagnostics.Process[] AllProcess = System.Diagnostics.Process.GetProcesses();

//특정 이름의 프로세스를 가져옵니다.
System.Diagnostics.Process[] Process_Name = System.Diagnostics.Process.GetProcessesByName("aaa");


이렇게 간단하게 프로세스의 정보를 가져 올수 있습니다.

 

 


이것을 이용하여 해서 프로그램의 중복검사도 가능합니다.

private void Form1_Load(object sender, EventArgs e)
{
	//나의 프로세스 정보를 가져옵니다.
	System.Diagnostics.Process Process_My = System.Diagnostics.Process.GetCurrentProcess();

	//특정 이름의 프로세스를 가져옵니다.
	System.Diagnostics.Process[] Process_Name = System.Diagnostics.Process.GetProcessesByName(Process_My.ProcessName);

	if (1 < Process_Name.Count())
	{
		//중복실행이다!
		//종료
		Environment.Exit(0);
	}
}