소년포비의 세계정복!!

[ExecuteUnit] Process 다루기 Demo 본문

프로그램 세상/C#

[ExecuteUnit] Process 다루기 Demo

소년포비 2009. 10. 6. 06:29
앞서 Process 의 개요에 대해 간략히 살펴 보았다.
이번에는 닷넷으로 시스템의 Process 를 다루는 데모를 살펴 보자
 
간략한 설명을 먼저 하자면...
닷넷에서는 System.Diagnostics 네임스페이스에 Process 클래스가 있다
이 Process 클래스를 통해 현재 시스템의에 실행중인 Process 들을 열거 할 수 있고
특정 Process 내의 Thread 집합 및 모듈 집합을 조사할 수 있으며 
특정 Process 의 시작/종료 를 프로그래밍 방식으로 제어 할수 있도록 한다.
 
 
* Demo 설명
현재 시스템에 실행중인 Process 들을 열거 하고 특정 Process 를 선택하여
Thread , Module 집합을 조사 한다.
또한 특정 Process 를 프로그래밍 방식으로 시작하고 종료시킨다.
이때 매개변수 또는 ProcessStartInfo 정보를 사용하여 해당 Process 가
시작되는 방법과 관련된 정보를 지정하도록 한다.
 
(여기서 조사하는 특정 Process 는 Demo 용으로 작성된 또 다른 응용프로그램(TEST) 이다
 이 TEST 응용프로그램에서는 프로그래머가 정의한 Worker Thread 가 두개 있다.)
 
 
 
* Demo 캡쳐
 
 - Demo 프로그램 캡쳐
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
    
  
 - 조사 대상이 되는 TEST 응용프로그램 실행 화면 캡쳐
 

 
 - Thread 1(우선순위 Highest
 - Thread 2(우선순위 Lowest)
 
 이 두 Thread 는 시작과 동시에 텍스트 박스의 동그라미와 네모를
 계속 변환 시키는 역할을 한다.
 
 
 
 
 
TEST 응용프로그램을 실행한 후 이 Demo 를 실행한다.
그리고 TEST 응용프로그램을 선택한 후 오른쪽 클릭하여 쓰레드와 모듈 정보를 불러온다.
 
실행된 TEST 응용프로그램의 두 Thread 를 시작하면 위 캡쳐 처럼 두개의 Thread 가 목록에 나타난다.
또한 이 TEST 응용프로그램에 있는 로드된 모듈들 (프로세스에 의해서 호스트되는 EXE or DLL (NET 모듈,COM모듈,C바이너리등) )
목록이 나열된다.
 
하단에는,
특정 웹사이트를 IExplore.exe 를 통해 OPEN 하고 닫는다.
또한 ProcessStartInfo 를 이용하여 doc 파일을 프린트 한다.
마지막으로 로컬 Process 시작 매개변수로 사용하여 현재 시스템의 즐겨찾기 목록을 띄운다