1

Тема: AHK: Открыть сайт в фоновом режиме

Здравствуйте, хочу сделать счетчик пользователей онлайн через ucoz сайт. Скрипт должен открыть сайт в фоновом режиме и на сайте прибавляется счетчик гостей
Пытался реализовать вот так

whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", url, true)
whr.Send()
whr.WaitForResponse()

Ничего не вышло. Важно, чтобы сайт просто открылся и не закрывался.
Помогите, буду благодарен

2

Re: AHK: Открыть сайт в фоновом режиме

Цель какая? Накрутить счетчик?

3 (изменено: Diman_Express, 2017-12-10 20:47:22)

Re: AHK: Открыть сайт в фоновом режиме

Malcev, мониторинг онлайн пользователей.

4

Re: AHK: Открыть сайт в фоновом режиме

Посылайте в цикле запрос на сервер и парсите ответ.

5

Re: AHK: Открыть сайт в фоновом режиме

Malcev, тяк?

whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", ip, true)
Loop
{
whr.Send()
whr.WaitForResponse()
}

6

Re: AHK: Открыть сайт в фоновом режиме

Я бы так делал:

HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
loop
{
   HTTP.Open("GET", "https://github.com/login", true)
   HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
   HTTP.SetRequestHeader("Pragma", "no-cache")
   HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
   HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
   HTTP.send()
   HTTP.WaitForResponse()
   msgbox % HTTP.ResponseText
}

7

Re: AHK: Открыть сайт в фоновом режиме

Malcev Сайт не будет думать, что мы пытаемся его заддосить?

8

Re: AHK: Открыть сайт в фоновом режиме

Это можно проверить только на практике.
Делайте перерывы между запросами.

9

Re: AHK: Открыть сайт в фоновом режиме

Malcev, Спасибо большое <3

10

Re: AHK: Открыть сайт в фоновом режиме

Diman_Express, поставьте точки в предложениях:
http://forum.script-coding.com/viewtopi … 72#p121572;
http://forum.script-coding.com/viewtopi … 56#p121756;
http://forum.script-coding.com/viewtopi … 58#p122158;
http://forum.script-coding.com/viewtopi … 67#p122167.

11

Re: AHK: Открыть сайт в фоновом режиме

Malcev пишет:

Я бы так делал:

Не подскажете, где найти подробней, об отправке запросов и получении ответов, в русской справке AHK?

12

Re: AHK: Открыть сайт в фоновом режиме

Нету такого.

13 (изменено: kamelotto, 2020-01-04 17:09:49)

Re: AHK: Открыть сайт в фоновом режиме

Malcev
Тогда откуда вы взяли это?:

HTTP := ComObjCreate(Набор параметров)
loop
{
   HTTP.Open(Набор параметров)
   HTTP.SetRequestHeader(Набор параметров)
   HTTP.SetRequestHeader(Набор параметров)
   HTTP.SetRequestHeader(Набор параметров)
   HTTP.SetRequestHeader(Набор параметров)
   HTTP.send()
   HTTP.WaitForResponse()
   msgbox % HTTP.ResponseText
}

14

Re: AHK: Открыть сайт в фоновом режиме

Конкретно эти из google+MSDN+опыта.

15

Re: AHK: Открыть сайт в фоновом режиме

Malcev
То есть: "ComObjCreate(Набор параметров)" , "HTTP.Open(Набор параметров)", "HTTP.send()" и всё остальное в этом коде, уже за пределами AHK? Но AHK Может ими манипулировать?

16

Re: AHK: Открыть сайт в фоновом режиме

WinHttp.WinHttpRequest.5.1 - это COM объект.
AHK умеет управлять COM объектами.

17 (изменено: kamelotto, 2020-01-05 13:46:00)

Re: AHK: Открыть сайт в фоновом режиме

Malcev
И насколько полно в AHK реализована поддержка технологий COM?
Я уточню: AHK может сотрудничать с COM на уровне C++? Или имеются какие то ограничения?

18

Re: AHK: Открыть сайт в фоновом режиме

Нет, нельзя.
IDispatch полностью поддерживвается, IUnknown придется самому заполнять.

19

Re: AHK: Открыть сайт в фоновом режиме

Malcev
А как это может быть? Вот у меня выдержка про СОМ-интерфейсы:
"СОМ-интерфейсы
СОМ-интерфейс применяется для объединения методов СОМ-объекта. Интерфейс позволяет клиенту правильно обратиться к СОМ-объекту, а объекту - правильно ответить клиенту. Названия СОМ-интерфейсов начинаются с буквы I. Клиент может не знать, какие интерфейсы имеются у СОМ-объекта. Для того чтобы получить их список, клиент использует базовый интерфейс lunknown, который есть у каждого СОМ-объекта."
Как же писать БАЗОВЫЙ интерфейс lunknown, к СОМ-объектам, которые вообше Microsoft написала!? Получается, я заново должен написать базовый интерфейс lunknown, что бы запросить через него список всех интерфейсов СОМ-объекта? Но зачем его писать, если он давно есть?
Или я не так понял ваш ответ?

20

Re: AHK: Открыть сайт в фоновом режиме

Например WinHttp.WinHttpRequest.5.1 - интерфейс IDispatch
Соответственно, чтобы вызвать его метод Open, достаточно написать

whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", url, true)

IDXGIFactory - интерфейс IUnknown.
https://docs.microsoft.com/en-us/window … xgifactory
Чтобы вызывать его методы, надо смотреть dxgi.h и высчитывать на каком месте они находятся и вызывать через dllcall.

21 (изменено: kamelotto, 2020-01-05 16:33:19)

Re: AHK: Открыть сайт в фоновом режиме

Malcev
А вообще, разве нет описания работы AHK с СОМ?
В AutoIt — есть такое. В DELPHI даже есть свои мастера для этих моментов. А в АНК я что то не вижу нигде, ни описания возможностей работы с СОМ, Ни примеров кода.
Например, что нужно, для обращения к СОМ-объекту "WinHttp.WinHttpRequest.5.1"? Нужно где то писать, что то типа # Include-СОМ? Или АНК "всегда готов", как древний пионер, и из любого места кода среагирует на пространство имён WinHttp?
А ещё хорошо бы вообще знать какие есть СОМ-объекты ("А можно всех посмотреть?") и интерфейсы к ним.

22

Re: AHK: Открыть сайт в фоновом режиме

https://www.autohotkey.com/docs/command … Create.htm
https://maul-esel.github.io/tutorials/C … faces.html

23

Re: AHK: Открыть сайт в фоновом режиме

Malcev
Ну не знаю я английского. Что нет на русском?

24

Re: AHK: Открыть сайт в фоновом режиме

Нет. Учите.
Без него далеко не уедете.

25

Re: AHK: Открыть сайт в фоновом режиме

OFF:
Есть характерные слова-термины (их можно запомнить) и есть обычные слова. Когда я переводил, то забивал статью в яндекс-переводчик. Он переводил кое-как, я уже допиливал литературно.
Могу сказать, что нет особого смысла учиться переводить технические тексты. Надо просто прогонять статью через автопереводчик, после смотреть: если что-нибудь получилось нелогично или непонятно - скорректировать. Одно и то же слово в разном контексте может означать разное - в таком случае приходится смотреть все значения отдельного слова и подбирать подходящее по смыслу.
Иногда попадаются такие фразы, что смысл понятен, но напрямую перевести невозможно, т. к. русские люди не используют такие обороты. Тогда нужно заменить всю фразу аналогичной без потери смысла.

Если б на форуме каждый вопрошающий перевёл 1 статью...