목차 열기

티스토리 뷰

VBA/WinAPI

VBA WinAPI / user32 - GetWindowText

RuungJi · 2022. 8. 27. 02:04
728x90
반응형

VBA WinAPI / user32 - GetWindowText

이 글은 Excel VBA 코딩 중, Windows API 함수를 사용하는 과정을 기록하기 위한 것이므로 이 점 참고 바랍니다.


이 포스팅은 Excel VBA에서 Win API를 사용하는 것에 대해 다룹니다.

user32 - GetClassName

윈도우 핸들을 통해 프로그램의 창 이름을 반환합니다.

Microsoft technical documentation

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getwindowtexta

함수 선언

코드 상단에 추가해서 사용합니다.

#If VBA7 Then
    Private Declare PtrSafe Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
                                                                (ByVal hwnd As Long, _
                                                                ByVal lpString As String, _
                                                                ByVal cch As Long) As Long
#Else
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
                                                                (ByVal hwnd As Long, _
                                                                ByVal lpString As String, _
                                                                ByVal cch As Long) As Long
#End If

설명 및 예제

  • 반환에 성공하면 문자열의 길이가 반환됩니다.
  • 반환에 실패하면 0이 반환됩니다.
  • 한글은 유니코드에 속하여, 글자 하나당 길이 2로 인식하는 것으로 보입니다. 확실하지 않습니다.
Function GetWindowText(
    ByVal hwnd As Long, '핸들
    ByVal lpString As String, '창 이름을 담을 문자열
    ByVal cch As Long '담을 문자열의 길이
    ) As Long


    '핸들 반환 실패
    Debug.Print GetWindowText(0, "     ", 100) '0

    '핸들 반환 성공 (메모장)
    Debug.Print GetWindowText(723584, "     ", 100) '26 (제목 없음 - Windows 메모장) 

INDEX

VBA / INDEX

VBA / WinAPI / INDEX

728x90
반응형
댓글
글 보관함
«   2025/06   »
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
Total
Today
Yesterday