다른 명령
새 문서: == Handle의 class instance 값 구하는 방법 == * AutoIt에서 핸들을 통해 특정 컨트롤의 클래스 인스턴스 값을 구하려면 ControlGetHandle 또는 WinGetHandle을 사용해 윈도우나 컨트롤의 핸들을 얻은 후, DllCall을 통해 Windows API를 호출하여 인스턴스 값을 얻을 수 있습니다. * 예를 들어, GetClassName 함수를 통해 컨트롤의 클래스 이름을 얻고, 이를 활용하여 인스턴스 값을 구할 수 있습... |
편집 요약 없음 |
||
26번째 줄: | 26번째 줄: | ||
* 코드 설명 | * 코드 설명 | ||
<pre> | <pre> | ||
1. 윈도우 및 컨트롤 핸들 가져오기: | |||
• WinGetHandle로 윈도우 핸들을 가져옵니다. | |||
• ControlGetHandle로 특정 컨트롤의 핸들을 가져옵니다. | |||
2. 클래스 이름 가져오기: | |||
• GetClassName 함수를 호출하여 컨트롤의 클래스 이름을 sClassName 버퍼에 저장합니다. | |||
• DllStructGetData를 사용하여 버퍼에서 클래스 이름을 추출합니다. | |||
</pre> | </pre> | ||
[[category:autoit]] | [[category:autoit]] |
2024년 11월 4일 (월) 18:45 판
Handle의 class instance 값 구하는 방법
- AutoIt에서 핸들을 통해 특정 컨트롤의 클래스 인스턴스 값을 구하려면 ControlGetHandle 또는 WinGetHandle을 사용해 윈도우나 컨트롤의 핸들을 얻은 후, DllCall을 통해 Windows API를 호출하여 인스턴스 값을 얻을 수 있습니다.
- 예를 들어, GetClassName 함수를 통해 컨트롤의 클래스 이름을 얻고, 이를 활용하여 인스턴스 값을 구할 수 있습니다.
- AutoIt에서 DllCall을 사용해 클래스 이름을 가져오는 예제
#include <WinAPI.au3> ; 윈도우 핸들을 구합니다. Local $hWnd = WinGetHandle("창 제목") ; "창 제목"을 실제 프로그램 창 제목으로 변경하세요. ; 컨트롤 핸들을 구합니다. Local $hControl = ControlGetHandle($hWnd, "", "컨트롤 ID") ; "컨트롤 ID"를 실제 컨트롤의 ID로 변경하세요. ; 클래스 이름 버퍼 설정 Local $sClassName = DllStructCreate("char[256]") DllCall("user32.dll", "int", "GetClassName", "hwnd", $hControl, "ptr", DllStructGetPtr($sClassName), "int", 256) ; 클래스 이름 출력 Local $sClass = DllStructGetData($sClassName, 1) ConsoleWrite("Class Name: " & $sClass & @CRLF)
- 코드 설명
1. 윈도우 및 컨트롤 핸들 가져오기: • WinGetHandle로 윈도우 핸들을 가져옵니다. • ControlGetHandle로 특정 컨트롤의 핸들을 가져옵니다. 2. 클래스 이름 가져오기: • GetClassName 함수를 호출하여 컨트롤의 클래스 이름을 sClassName 버퍼에 저장합니다. • DllStructGetData를 사용하여 버퍼에서 클래스 이름을 추출합니다.