목차 열기
티스토리 뷰
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
728x90
반응형
'VBA > WinAPI' 카테고리의 다른 글
VBA WinAPI / INDEX (1) | 2022.08.28 |
---|---|
VBA WinAPI / user32 - SetForegroundWindow (0) | 2022.08.28 |
VBA WinAPI / user32 - ShowWindowAsync (0) | 2022.08.28 |
VBA WinAPI / user32 - GetClassName (0) | 2022.08.27 |
VBA WinAPI / user32 - FindWindow & FindWindowEx (0) | 2022.08.27 |
VBA WinAPI / Windows API Viewer for MS Excel (0) | 2022.08.25 |
VBA WinAPI / Windows Detective (0) | 2022.08.25 |
댓글