현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

콘솔 창 핸들 (HWND) 구하는 방법

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

124103
요약
콘솔 응용 프로그램에 연결된 창을 조작하는 데 유용할 수 있습니다. Win32 API 콘솔 응용 프로그램에 연결된 창 핸들을 가져오기 없음 직접적인 방법을 제공합니다. 그러나 호출 FindWindow()에 의해 창 핸들을 얻을 수 있습니다. 이 함수는 클래스 이름 또는 창 이름을 기준으로 창 핸들을 검색합니다.

현재 콘솔 제목을 확인하려면 GetConsoleTitle()를 호출하십시오. 다음 FindWindow() 현재 콘솔 제목을 제공하십시오.
추가 정보
같은 제목의 창이 여러 개 있을 수 있으므로 현재 콘솔 창 제목을 고유한 제목 변경해야 합니다. 잘못된 창 핸들이 반환되지 않도록 도와줍니다. SetConsoleTitle()를 현재 콘솔 창 제목을 변경할 수 있습니다. 프로세스는 다음과 같습니다.
  1. 현재 콘솔 창 제목 저장하려면 GetConsoleTitle()를 호출하십시오.
  2. 고유 제목 콘솔 제목을 변경하려면 SetConsoleTitle()를 호출하십시오.
  3. 호출이 Sleep(40) 창 제목을 확인하기 위해 업데이트되었습니다.
  4. 작업이 실패한 경우 (NULL, uniquetitle)이 이 호출은 HWND를 얻으려면 FindWindow 호출 HWND--NULL을 반환합니다.
  5. 호출이 SetConsoleTitle() 값이 1 단계에서 원래 창 제목 복원 검색할.
결과 HWND를 테스트해야 합니다. 예를 들어, GetWindowText()에 대한 HWND 호출하고 GetConsoleTitle() 결과와 비교하는 의해 반환된 HWND 현재 프로세스와 해당하는 경우 보려면 테스트할 수 있습니다.

결과 HWND 모든 창 핸들 작업에 적합한 것은 아닙니다.

예제 코드

다음 함수는 현재 콘솔 응용 프로그램 창 핸들 (HWND) 검색합니다. 함수가 성공적으로 실행된 경우 반환 값은 콘솔 창 핸들입니다. 함수가 실패하면 반환 값은 NULL 입니다. 일부 오류 검사, 간단하게 나타내기 위해 생략됩니다.
   HWND GetConsoleHwnd(void)   {       #define MY_BUFSIZE 1024 // Buffer size for console window titles.       HWND hwndFound;         // This is what is returned to the caller.       char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated                                           // WindowTitle.       char pszOldWindowTitle[MY_BUFSIZE]; // Contains original                                           // WindowTitle.       // Fetch current window title.       GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);       // Format a "unique" NewWindowTitle.       wsprintf(pszNewWindowTitle,"%d/%d",                   GetTickCount(),                   GetCurrentProcessId());       // Change current window title.       SetConsoleTitle(pszNewWindowTitle);       // Ensure window title has been updated.       Sleep(40);       // Look for NewWindowTitle.       hwndFound=FindWindow(NULL, pszNewWindowTitle);       // Restore original window title.       SetConsoleTitle(pszOldWindowTitle);       return(hwndFound);   }				

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 124103 - 마지막 검토: 07/11/2005 22:34:21 - 수정: 1.3

Microsoft Platform Software Development Kit-January 2000 Edition

  • kbmt kbhowto kbwndw KB124103 KbMtko
피드백
ml>ext/JavaScript" async=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("