블로그 이미지
평강왕자

카테고리

분류 전체보기 (35)
Programming Lv1 (32)
Programming LV2 (0)
취미 (3)
Total
Today
Yesterday

달력

« » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

다른프로그램의 창을 활성화 시켜야 할 경우가 있어야 할지도 모른다.
중요한건 윈도우 핸들값을 찾아야 한다.

1) 윈도우 핸들 값을 찾는다.
    1-1.클래스명을 모를경우 NULL을 집어넣고 Title에 흔히 보이는 프로그램 명을 집어넣어주면 된다.
          HWND hwnd = FindWindow(클래스명, Title);

    1-2. CreateProcess로 자신이 실행한 경우 PROCESS_INFORMATION 으로 윈도우 핸들값을 찾아야 한다.
          인터넷으로 콜백함수를 사용하여 프로세스를 뒤진다음 가져오는 함수가 있었다.
HWND m_hwnd;

BOOL CALLBACK EnumChildProc(  HWND hwnd,  LPARAM lParam  )
{
 m_hwnd = NULL;
 TCHAR text[255];
 DWORD dwPID = 0;
 GetWindowText(hwnd,text,sizeof(text));
 GetWindowThreadProcessId(hwnd,&dwPID);
 if(dwPID == (DWORD)lParam)
 {
   m_hwnd = hwnd;
  return FALSE;
 }
 return TRUE;
}

    2-1. 핸들 값을 찾았으면 그핸들값으로 창을 활성화 시킨다.
::BringWindowToTop(hwnd);
 ::SetActiveWindow(hwnd);
 ::SetForegroundWindow(hwnd);
 ::ShowWindow(hwnd, SW_SHOWNORMAL);
 ::UpdateWindow(hwnd);

Posted by 평강왕자
, |

최근에 달린 댓글

글 보관함