본문 바로가기

C/C++

[API] 윈도우 핸들얻기.

MSDN - http://msdn.microsoft.com/ko-kr/library/ykz4yxt5.aspx



FindWindow 함수로 창의 클래스(Class) , 윈도우 캡션 (Caption) 을 검색하여 얻어옵니다.


[비주얼 베이직 예제]

먼저 API를 선언합니다.

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


함수부터 보겠습니다.

ByVal lpClassName As String ::: 클래스 네임을 조건입니다. 모두 검색할때에는 vbNullString 을 사용합니다.
ByVal lpWindowName As String : 윈도우 네임의 조건입니다. 모두 검색할때에는 vbNullString 을 사용합니다.

일단 메모장의 핸들을 얻어오는 간단한 예제를 만들어보아요

먼저, 메모장의 Class 네임을 알아야합니다. 간단하게 Spy++로 검색하시면됩니다.



위와 같이 클래스 네임이 "Notepad"로 됩니다.

자 이젠 작성을 해봅시다.

먼저 핸들을 저장할 변수를 선언합니다.

Dim hwdNotePad As Long

그리고 바로 윈도우핸들을 얻어옵니다.

hwdNotePad = FindWindow(vbNullString, "Notepad")

반환값은 실패시 0을 반환하며, 성공하면 찾은 핸들을 반환합니다.




[Visual C++]

먼저 <windows.h>헤더를 Include시킵니다.

#include <windows.h>


핸들을 저장할변수를 선언하죠.

HWND hwdNotePad;

핸들을 얻어와보죠.


hwndNotePad = FindWindow("Notepad",NULL);

비베와는 다르게 NULL을 사용합니다.