1 (изменено: Finx, 2017-01-17 01:39:34)

Тема: AHK: Как сделать, чтобы скрипт не зависал от ожидания GET запроса?

Здравствуйте, пишу маленькую систему общения между собой, а именно от одно юзера к другому.
Сея проблема такова, у меня есть Gui, в котором так скажем есть несколько фишек.
Но как мы знаем, в дефолтном виде нельзя юзать два потока, что очень огорчает!
Мне бы хотелось узнать, существует ли какой-либо способ помимо COM? Задача:
Дан цикл через Loop, мне требуется, чтобы он работал сам по себе, а при получении ответа просто заносил его в .txt файл.
Если же нет таких способов, прошу объяснить в мелочах про COM, и дать ссылку на скачивание, с autohotkey.net удалили(
Спасибо за уделенное время!

2

Re: AHK: Как сделать, чтобы скрипт не зависал от ожидания GET запроса?

Finx пишет:

Как сделать, чтобы скрипт не зависал от ожидания GET запроса?

Пользоваться асинхронными запросами.

Finx пишет:

прошу объяснить в мелочах про COM, и дать ссылку на скачивание

Для использования COM ничего скачивать не нужно, AHK поддерживает её нативно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Как сделать, чтобы скрипт не зависал от ожидания GET запроса?

teadrinker, я не программист, я не понимаю. (

4

Re: AHK: Как сделать, чтобы скрипт не зависал от ожидания GET запроса?

stealzy, все подготовлено лишь на PHP, а вот с АХК проблемы, не могу сделать отдельное ожидание

5

Re: AHK: Как сделать, чтобы скрипт не зависал от ожидания GET запроса?

Пример:

#Persistent
url := "https://autohotkey.com/download/1.1/AutoHotkey_1.1.24.04_setup.exe"  ; установщик AHK
DownloadPath := A_Desktop "\ahk-install.exe"

xmlhttp := ComObjCreate("Msxml2.XMLHTTP")
xmlhttp.Open("GET", url, true)  ; асинхронный запрос — третий параметр true
xmlhttp.onreadystatechange := Func("Ready").Bind(xmlhttp, DownloadPath)
xmlhttp.Send()

i := 0
Loop  {
   ToolTip % "Скрипт может заниматься чем-то, пока файл загружается. Считаем i = " i++
   Sleep, 100
}
Return

Ready(xmlhttp, path)  {
   if !(xmlhttp.readyState = 4 && xmlhttp.status = 200)
      Return
   
   stream := ComObjCreate("ADODB.Stream")
   stream.type := 1  ; Binary data
   stream.Open
   stream.Write(xmlhttp.responseBody)
   stream.SaveToFile(path, 2)   ; Overwrites the file
   stream.Close
   ExitApp
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6 (изменено: Finx, 2017-01-17 08:22:39)

Re: AHK: Как сделать, чтобы скрипт не зависал от ожидания GET запроса?

teadrinker, большое спасибо! Все работает!