실행할프로그램 = notepad.exe
Run, % 실행할프로그램, , , 활성창PID
WinWaitActive, ahk_pid %활성창PID%
WinGet, 활성창HWAN, ID, ahk_pid %활성창PID%
WinGetPos, 화면x좌표, 화면y좌표, 창가로, 창세로, ahk_pid %활성창PID%
WinGetTitle, 창이름, ahk_pid %활성창PID%
WinGetClass, 클래스, ahk_id %활성창HWAN%
ControlGetFocus, 콘트롤클래스NN, ahk_id %활성창HWAN%
ControlGet, 콘트롤클래스NN아이디, Hwnd,, %콘트롤클래스NN%, ahk_id %활성창HWAN%
ControlGet, 활성여부값, Enabled, , %콘트롤클래스NN%, ahk_id %활성창HWAN% ;콘트롤클래스NN로만 동작함
If 활성여부값 = 1 ; ControlGetFocus로 획득한 클래스NN이 활성화되어 있으면 ControlGet에서 1을 출력한다
{
msgbox, %활성창PID% 프로세스 %클래스%(%활성창HWAN%, %창이름%)의 %콘트롤클래스NN%(%콘트롤클래스NN아이디%)이 활성화되어 있습니다.
postmessage, 0x100, 0x58, 0x2d0001, %콘트롤클래스NN%, ahk_id %활성창HWAN%
postmessage, 0x101, 0x58, 0xc02d0001, %콘트롤클래스NN%, ahk_id %활성창HWAN%
메시지전달될자식창 := DllCall("user32\FindWindowEx", "Ptr", 활성창HWAN, "Ptr",0, "Ptr",0, "Ptr",0, "Ptr", 콘트롤클래스NN아이디) ;Str만 아닌 uint,int,ptr 전부 가능 함
DllCall("PostMessage", "UInt", 메시지전달될자식창, "UInt", 0x100, "UInt", 0x58, "UInt", 0x2d0001)
DllCall("PostMessage", "UInt", 메시지전달될자식창, "UInt", 0x101, "UInt", 0x58, "UInt", 0xc02d0001)
}