2016. 3. 12.

웹페이지 로딩 완료 체크

[출처:http://autohotkey.co.kr/b/6-586]


WebWait(A,Search)
{
WinAct(A)
; 새창의 윈도ID 얻기 
WinGet, wid, ID 
; 새창을 제어할 수 있는 COM 오브젝트 얻기 
ie := IE_ComObjGet(wid) 
 
; 이제 ie를 통해 새창을 제어한다. 
 
; 특정 윈도ID를 가지는 IE창의 COM 오브젝트를 얻는다. 존재하지 않는다면 빈문자열을 반환한다. 
@param wid 윈도ID 
@return COM 오브젝트 
 
;ie 오브젝트에서 한번 썻기때문에 안씀.
IE_ComObjGet(wid) { 
    For obj in ComObjCreate("Shell.Application").Windows 
        If (ComObjType(obj, "Name") == "IWebBrowser2" && obj.HWND == wid) 
            Return obj 
}
 
 loop
 {; ie 객체의 테스트를 취득하여 dnserror 오류가 없으면 result에 저장을 하며, result에 페이지 특유의 텍스트가 있는지를 비교하여 완료.
 If (!RegExMatch(ie.StatusText, "dnserror")) { 
 ErrorLevel := 0
 result := ie.Document.documentElement.innerHTML 
 
     } Else { 
 ErrorLevel := 1 
     } 
FileAppend, %result%, test.html
IfInString, result, %Search%
 {
 break
 }
 }
 }