본문 바로가기
C & C++/C & C++

현재 내 컴퓨터에 어떤 프로그램이 실행중인가 ?

by izen8 2011. 11. 17.
반응형

현재 내 컴퓨터에 어떤 프로그램이 실행중인가 ?


  
[ 현재 내 컴퓨터에서 동작중인 프로그램 알아보기 ]
 
 

현재 자신의 컴퓨터상에 어떠한 프로그램이 동작중인지를 알고 싶을 때, 사용하는 방법을 소개하겠습니다. 시스템프로그래밍이 아닌 경우에는 별 소용이 없겠지만, 전체적인 프로그램 구조를 이해하는데 많은 도움이 될꺼라 믿습니다. ^O^

 
 
 

먼저 현재의 윈도우의 핸들을 가져옵니다.

 

HWND hWndDesktop;
HWND hWnd;
char szCaption[1025]="";
hWndDesktop=::GetDesktopWindow();

 

일반적으로 어플리케이션은 데스크탑윈도우의 차일드로 취급이 됩니다.

 

hWnd=::GetTopWindow(hWndDesktop);

 

데스크탑 윈도우로부터, 최초의 윈도우의 윈도우 핸들을 취득합니다.

 

        for(0;hWnd;hWnd=::GetNextWindow(hWnd,GW_HWNDNEXT)) {

                ::GetWindowText(hWnd,szCaption,1024);

                if(szCaption[0])  {

// szCaption의 값을 출력합니다.

   }

        }
 

그 아이의 윈도우를 차례차례로 취득해 가기 위해의 루프입니다. 첫 번째 행은 윈도우 타이틀바의 스트링을 가져옵니다. 그리고는, 타이틀바에 스트링의 존재여부를 판단하여, 조건문안에 그 스트링값을 출력하면 됩니다. 실질적으로 현재 사용되는 프로그램보다 더 많은 종류의 타이틀이 출력이됩니다. 이는 눈에 보이지 않고 내부적으로 돌아가는 프로그램까지 출력이 되는 것입니다. 만일 이것도 제어하고 싶다면 조건문에 다음과 같이 추가하면 됩니다.

 

if(szCaption[0]! ='\0' && ::IsWindowVisible(hWnd))

반응형

댓글