프로그래밍/c++

프로세스ID, 윈도우 핸들 컨트롤

GaePein 2013. 4. 26. 11:35

 

//----------------------------------------------
// 윈도우 핸들로 프로세스 아이디 얻기
//----------------------------------------------

ULONG ProcIDFromWnd(HWND hwnd)

 ULONG idProc; 
 GetWindowThreadProcessId( hwnd, &idProc ); 
 return idProc; 
}

 

//----------------------------------------------
// 프로세스 아이디로 윈도우 핸들 얻기
//----------------------------------------------

HWND GetWinHandle(ULONG pid)

 HWND tempHwnd = FindWindow(NULL,NULL);   // 최상위 윈도우 핸들 찾기 

 while( tempHwnd != NULL )
 { 
  if( GetParent(tempHwnd) == NULL )             // 최상위 핸들인지 체크, 버튼 등도 핸들을 가질 수 있으므로 무시하기 위해 
   if( pid == ProcIDFromWnd(tempHwnd) ) 
    return tempHwnd; 
  tempHwnd = GetWindow(tempHwnd, GW_HWNDNEXT); // 다음 윈도우 핸들 찾기 
 } 
 return NULL; 
}