1

Тема: AHK: автообновление содержимого страницы

Доброго времени суток. Сложилась следующая проблема, которую я, будучи не разбирающимся в ahk и программировании в целом, решить не могу.
Ниже размещен код, позволяющий получить содержимое определенного div-тега и вывести его на экран. Задача состоит в модернизации кода таким образом, чтобы выводимая на экран информация по oDivTag.innerText обновлялась автоматически (если на сайте яндекса изменится содержимое этого тега, то выводимая скриптом информация тоже обновится).
Подойдет любой способ. Спасибо.


global WinHttpRequestOption_EnableRedirects := 6
global WinHttpRequestOption_MaxAutomaticRedirects := 14
global WinHttpRequestOption_EnableHttpsToHttpRedirects := 12
global oHttpRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
oHttpRequest.Option(WinHttpRequestOption_EnableRedirects) := -1
oHttpRequest.Option(WinHttpRequestOption_EnableHttpsToHttpRedirects) := -1
oHttpRequest.Option(WinHttpRequestOption_MaxAutomaticRedirects) := 20

oHtmlDoc := documentFromURL("http://www.yandex.ru/")

colDivTags := oHtmlDoc.all.tags("div")

loop , % colDivTags.length-1
{
	i++
    oDivTag := colDivTags[i ]
    if (oDivTag.classname = "services")
    {

CustomColor = FFFFFF
Gui +LastFound +AlwaysOnTop -Caption +ToolWindow 
Gui, Color, FFFFFF
Gui, Font, s16 
Gui, Add, Text, vMyText cLime, % oDivTag.innerText  

WinSet, TransColor, %CustomColor% 150
Gui, Show, x1500 y400 NoActivate
return

    }
}

documentFromURL(ByRef sURL) {
    oHttpRequest.open("GET", sURL, false)
    oHttpRequest.send()
    return documentFromHTML(oHttpRequest.responseText, sURL)
}

documentFromHTML(ByRef sHTMLCode, ByRef sBaseURL) {
    oDoc := ComObjCreate("htmlfile")
    oDoc.open()
    oDoc.write("<base href=""" . sBaseURL . """>")
    oDoc.close()
    oDoc.body.innerHTML := sHTMLCode
    return oDoc
	
}
return

Я пробовал вводить для кода таймер (поместив в метку таймера весь код), однако в этом случае выдается ошибка "0x8002006 - неизвестное имя" по строке "oDivTag := colDivTags[i ]"

2

Re: AHK: автообновление содержимого страницы

У вас i не обнуляется.
Замените:

loop , % colDivTags.length-1
{
	i++
    oDivTag := colDivTags[i ]
    if (oDivTag.classname = "services")

на:

loop , % colDivTags.length
{
    oDivTag := colDivTags[A_Index-1]
    if (oDivTag.classname = "services")

3

Re: AHK: автообновление содержимого страницы

Спасибо, все работает.