101

Re: AHK: Internet Explorer Platform APIs

Тогда не знаю, может у тебя настройка очищать куки?

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

102

Re: AHK: Internet Explorer Platform APIs

Cбросил на настройки по умолчанию, не помогло.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

103

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

Navigate?

Так и не понял как его использовать. Ввожу в него адрес запроса, и браузер выдаёт "Вы хотите покинуть страницу?".

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

104 (изменено: Malcev, 2019-08-14 08:00:13)

Re: AHK: Internet Explorer Platform APIs

Я его не использовал.
Но нужно так:
https://www.tutorialrepublic.com/codela … ;file=form

IE := ComObjCreate("InternetExplorer.Application")
IE.Visible := True
IE.Navigate("https://www.tutorialrepublic.com/examples/actions/confirmation.php",,, BinArr_FromString("username=user&userpass=pass"), "Content-Type: application/x-www-form-urlencoded")


BinArr_FromString(str) {
    oADO := ComObjCreate("ADODB.Stream")

    oADO.Type := 2 ; adTypeText
    oADO.Mode := 3 ; adModeReadWrite
    oADO.Open
    oADO.Charset := "UTF-8"
    oADO.WriteText(str)

    oADO.Position := 0
    oADO.Type := 1 ; adTypeBinary
    oADO.Position := 3 ; Skip UTF-8 BOM
    return oADO.Read, oADO.Close
}

У тебя что-то не то с IE, так как должно с Msxml2.XMLHTTP и сайтом script-coding.com всё получаться.
Но с некоторыми не выходит, например с inbox.lv.
Там сразу выскакивает ошибка в праве доступа и если прописать в настройках security - access data sources across domains - enable, то кукисы о логине возвращаются, но логина в responsetext не происходит.
Даже если отпралять все кукисы вручную, то с Msxml2.XMLHTTP логина всё-равно не произойдет, а с WinHTTP.WinHTTPRequest.5.1 логинится ОК.
Наверное какая-то политика безопасности за это отвечает.
Можешь еще получать все кукисы с IE через апи и отправлять их через WinHTTP.WinHTTPRequest.5.1.

105 (изменено: Malcev, 2019-08-17 21:23:28)

Re: AHK: Internet Explorer Platform APIs

Написал скрипт для авторизации на inbox.lv.
Через WinHTTP.WinHTTPRequest.5.1 логинится, а через Msxml2.XMLHTTP нет.
Странно.

login := "login"
pass:= "pass"

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
; HTTP := ComObjCreate("Msxml2.XMLHTTP.6.0")
HTTP.Open("GET", "https://login.inbox.lv", false)
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()
salt := RegexReplace(HTTP.ResponseText, "s)^.+?<input name=""salt"" type=""hidden"" value=""(.+?)"".+$", "$1")
data := "mailplus=0&language=ru&passhash=&redirect_url=https%3A%2F%2Fwww.inbox.lv%2F%3FactionID%3Dimp_login&redirect_vars=&salt=" salt "&imapuser=" login "&pass=" pass

HTTP.Open("POST", "https://login.inbox.lv/login/login", false)
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.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
HTTP.SetRequestHeader("Referer", "https://www.inbox.lv/")
HTTP.Send(data)
msgbox % http.getallresponseheaders
msgbox % clipboard := HTTP.ResponseText

106

Re: AHK: Internet Explorer Platform APIs

А не трудно сделать такой же пример с начальной авторизацией в Internet Explorer?
И такой вопрос, судя по всему на интересующем меня сайте с помощью запросов периодически меняется токен. Как то можно отслеживать запросы которые браузер делает сам, также как это происходит во вкладке сеть.
https://i.imgur.com/4e91W2l.png
И бывают ли входящие запросы, от сервера к клиенту, или о всех изменениях на сервере можно узнать только посылая ему запросы?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

107

Re: AHK: Internet Explorer Platform APIs

serzh82saratov пишет:

А не трудно сделать такой же пример с начальной авторизацией в Internet Explorer?

Так я же уже приводил пример как отправлять пост-запросы в IE.

serzh82saratov пишет:

Как то можно отслеживать запросы которые браузер делает сам, также как это происходит во вкладке сеть

Да, через снифферы.

serzh82saratov пишет:

бывают ли входящие запросы, от сервера к клиенту, или о всех изменениях на сервере можно узнать только посылая ему запросы?

Можно через вебсокеты:
https://habr.com/ru/post/162301/

108

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

Так я же уже приводил пример как отправлять пост-запросы в IE.

Да, уже забыл, в 104.

Malcev пишет:

Да, через снифферы.

Через AHK никак?

Malcev пишет:

Можно через вебсокеты:

Запросы по сокетам тоже снифферы могут определить?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

109

Re: AHK: Internet Explorer Platform APIs

serzh82saratov пишет:

Через AHK никак?

Сомневаюсь. Проще найти устраивающий сниффер и парсить его лог.

serzh82saratov пишет:

Запросы по сокетам тоже снифферы могут определить?

Могут, но не все.
Надо тестировать - их достаточно много.

110

Re: AHK: Internet Explorer Platform APIs

А ты какие используешь?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

111

Re: AHK: Internet Explorer Platform APIs

Я встроенный в IE на win7, так как IE на Win10 не всё показывает, либо, когда надо посмотреть, какие бинарные данные отправляются, то на той же семерке HttpWatch Professional, так как для win10 народной версии нету.
А на win10 через хром пару раз смотрел, когда с IE на сайт не зайти было.

112

Re: AHK: Internet Explorer Platform APIs

Ясно.

Встречал где нибудь блокировку от имитации кликов по элементам.
По идее это должно работать там, где не работает метод click(). Или javascript может проверять физические состояния кнопок.


IE := ComObjCreate("InternetExplorer.Application")
IE.Visible := True
IE.Navigate("https://autohotkey.com/search/")
while IE.busy
   continue
oDoc := IE.document
input := oDoc.GetElementByID("gsc-i-id1")
input.value := "SetTimer"
input.focus()

Element := oDoc.getElementsByClassName("gsc-search-button gsc-search-button-v2")[0] 
; Element.click()
 
MsgBox MouseEvent

event := IE.document.createEvent("MouseEvent")
event.initMouseEvent("click", true, true, IE.document.parentWindow, _, _, _, _, _, _, _, _, _, _, _)
Element.dispatchEvent(event)
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

113

Re: AHK: Internet Explorer Platform APIs

Мы когда-то общались о событиях.
Сейчас все нюансы уже и не вспомню.
http://forum.script-coding.com/viewtopic.php?id=9183
https://www.autohotkey.com/boards/viewt … mp;t=59637

114

Re: AHK: Internet Explorer Platform APIs

Не помогает.
А есть вариант мониторить какие функции JS запускаются, например при клике по какому то элементу.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

115

Re: AHK: Internet Explorer Platform APIs

И в одной теме и во второй об этом написано:
http://forum.script-coding.com/viewtopi … 28#p130328

116

Re: AHK: Internet Explorer Platform APIs

Если вписать в поиск какой-то текст и поставить на эту кнопку в консоле мониторинг событий monitorEvents($0, "key"), то там отлавливаются события нажатия enter.

Я читал, но не пойму, "monitorEvents($0, "key")" это надо ввести в консоль и нажать ентер? У меня так пишет - "undefined".

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

117

Re: AHK: Internet Explorer Platform APIs

https://i.imgur.com/Bc1uOKa.png
Не пойму в какой поиск вбивать, как "поставить на эту кнопку в консоле мониторинг событий".

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

118

Re: AHK: Internet Explorer Platform APIs

https://habr.com/en/company/ruvds/blog/316132/

119

Re: AHK: Internet Explorer Platform APIs

Что то сразу не работает..
https://i.imgur.com/fOM8URT.png

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

120

Re: AHK: Internet Explorer Platform APIs

Выбираешь какой-то элемент стрелочкой в верхнем левом углу, потом заходишь в консоль, вписываешь monitorEvents($0), после чего водишь по элементу мышкой.

121

Re: AHK: Internet Explorer Platform APIs

Понял, я думал надо ентер нажать после ввода команды.
А у тебя работает по твоей ссылке?

3. Поиск обработчиков событий, привязанных к элементу

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

122

Re: AHK: Internet Explorer Platform APIs

Ну так тоже самое.
Выбираешь элемент и вписываешь getEventListeners($0).

123

Re: AHK: Internet Explorer Platform APIs

И энтер нажимать надо.

124

Re: AHK: Internet Explorer Platform APIs

А, видимо теперь тот синтаксис не работает.

getEventListeners(document.querySelector(".RNmpXc"))
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

125 (изменено: Malcev, 2019-08-18 05:34:20)

Re: AHK: Internet Explorer Platform APIs

У меня работает.
Можно еще так:

getEventListeners($(".RNmpXc"))

126 (изменено: Malcev, 2019-08-18 06:09:01)

Re: AHK: Internet Explorer Platform APIs

Понял откуда ноги растут у этой проблемы:

Написал скрипт для авторизации на inbox.lv.
Через WinHTTP.WinHTTPRequest.5.1 логинится, а через Msxml2.XMLHTTP нет.
Странно.

Для авторизации там нужно указывать referer.
А Msxml2.XMLHTTP не может его указать из-за политики безопасности Microsoft.
Проверял так:

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
; HTTP := ComObjCreate("Msxml2.XMLHTTP.6.0")
HTTP.Open("GET", "https://www.whatismyreferer.com/", false)
HTTP.SetRequestHeader("Referer", "malcev")
HTTP.Send()
msgbox % HTTP.ResponseText

127

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

У меня работает.
Можно еще так:

У меня с $ ничего не работает, только как в 124.

Malcev пишет:

Через WinHTTP.WinHTTPRequest.5.1 логинится, а через Msxml2.XMLHTTP нет.

А есть смысл в Msxml2.XMLHTTP, в тех случаях когда он не подхватывает куки.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

128

Re: AHK: Internet Explorer Platform APIs

http://forum.script-coding.com/viewtopi … 72#p135572
https://docs.microsoft.com/en-us/previo … 3(v=vs.85)
Всё таки не пойму логику как делать запрос через Navigate.
Например я нахожусь по адресу https://server.com/PD/#SUBMISSION.
Вижу что делается запрос по адресу https://server.com/PD/Operation/count.pd, с телом запроса "{}", тело ответа содержит Json.
Headers указал в переменной из данных выбранных через пункт меню на запросе "Копировать заголовки запроса".
PostData оставляю пустое.
Если ввожу url отличный от "https://server.com/PD/#SUBMISSION" или oIE.document.Url, пишет что покинет страницу.

То есть даже не понятно куда вводить адрес запроса, и где искать ответ на запрос.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

129

Re: AHK: Internet Explorer Platform APIs

Ну в принципе логично.
Само название метода об этом говорит.
Может как-то через ajax можно, он не рефрешит страницу.
Но лично я не понимаю, что ты пытаешься добиться.

serzh82saratov пишет:

А есть смысл в Msxml2.XMLHTTP, в тех случаях когда он не подхватывает куки.

Он всегда подхватывает куки, кроме тех случаев когда нужно отправлять referer либо использовать redirect.

130

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

Может как-то через ajax можно

Не нашёл примеров на анк.

Malcev пишет:

Но лично я не понимаю, что ты пытаешься добиться.

Да вроде всё просто, браузер делает раз в минуту запросы, я хочу сам делать эти запросы по чаще.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

131

Re: AHK: Internet Explorer Platform APIs

И если делать через WinHTTPRequest, то где в IE искать нужные данные для заголовков.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

132

Re: AHK: Internet Explorer Platform APIs

Наверное через execScript.
Не проверял.
А зачем посылать чаще?
Почему именно через браузер?
Цель какая всего этого?

133

Re: AHK: Internet Explorer Platform APIs

serzh82saratov пишет:

где в IE искать нужные данные для заголовков

Для каких заголовков?

134

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

Наверное через execScript.

Получать значения каких то переменных, или как?

Malcev пишет:

А зачем посылать чаще?

Надо чаще знать какие данные именились на сервере.

Malcev пишет:

Почему именно через браузер?

Надо чтобы было открыто в браузере, и чтобы было одно подключение.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

135 (изменено: Malcev, 2019-08-18 15:34:48)

Re: AHK: Internet Explorer Platform APIs

Мутное задание какое-то.
execScript выполняет какой-либо скрипт.
Может он сможет выполнить и ajax запрос, не знаю.
Зачем использовать WinHTTPRequest, если есть Msxml2.XMLHTTP?
Что значит одно подключение и почему нельзя использовать несколько?

136

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

Может он сможет выполнить и ajax запрос, не знаю.

Ты это когда то делал, я что то не могу понять как это должно выглядеть.

Malcev пишет:

Зачем использовать WinHTTPRequest, если есть Msxml2.XMLHTTP?

Видимо нужен referer, иначе не авторизованный.

Malcev пишет:

Что значит одно подключение и почему нельзя использовать несколько?

Ну например если запустить в двух браузерах одну учётку, то сервер это видит как 2 подключения, и начинает рвать соединение.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

137

Re: AHK: Internet Explorer Platform APIs

Не, не делал.

serzh82saratov пишет:

Видимо нужен referer, иначе не авторизованный.

Проверить можно с помощью авторизации на winhttp и проверки нужен ли referer (как я сделал с inbox).

138

Re: AHK: Internet Explorer Platform APIs

А возможно как то узнать что XMLHTTP "подхватил куки", не делая запрос, просто проверить какое-то его свойство.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

139

Re: AHK: Internet Explorer Platform APIs

А с чего вдруг он не должен их подхватывать?

140

Re: AHK: Internet Explorer Platform APIs

Просто интересно как это сделать. Ну или например на одном ресурсе в IE открыты две учётки, перед запросом надо как то понять из под какой из них запрос пойдёт.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

141 (изменено: Malcev, 2019-08-18 23:45:29)

Re: AHK: Internet Explorer Platform APIs

Никогда этим не интересовался.
Попробуй через internetgetcookieex.
ЗЫ если ты хочешь обмануть сервер, то не получится - по фингерпринту в миг вычислят.

142

Re: AHK: Internet Explorer Platform APIs

https://www.autohotkey.com/boards/viewtopic.php?t=29519
Как то мало информации в ответе.

MsgBox % InternetGetCookieEx("http://forum.script-coding.com")

; Requires Internet Explorer 8.0 or later.
InternetGetCookieEx(URL) {
	Loop, 2 {
		if (A_Index = 2) {
			VarSetCapacity(cookieData, size, 0)
		}
		DllCall( "Wininet.dll\InternetGetCookieEx"
		       , "ptr", &URL, "ptr", 0, "ptr", &cookieData, "int*", size
		       , "uint", 8192 ; INTERNET_COOKIE_HTTPONLY  
		       , "ptr", 0 )
	}
	return StrGet(&cookieData)
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

143

Re: AHK: Internet Explorer Platform APIs

В смысле должно быть HTTPOnly кукисов больше?

144

Re: AHK: Internet Explorer Platform APIs

Как то не похоже что этого хватит для того чтобы отправить WinHTTPRequest с заголовками как при полной авторизации.
Нужно имея авторизацию в браузере, отправить запрос, но не запрашивая новую аутентификацию в WinHTTPRequest .

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

145

Re: AHK: Internet Explorer Platform APIs

А ты проверял?

146

Re: AHK: Internet Explorer Platform APIs

ext-locale=s%3Aen-US; ext-expires=d%3AFri%2C%2014%20Aug%202020%2015%3A11%3A46%20GMT

Там где мне интересно, этого мало.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

147

Re: AHK: Internet Explorer Platform APIs

Так в чем проблема посмотреть чего не хватает?

148

Re: AHK: Internet Explorer Platform APIs

Имеешь ввиду какие то постоянные заголовки?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

149

Re: AHK: Internet Explorer Platform APIs

Смотришь все кукисы в IE, вставляешь их в winhttp, отправляешь без всяких заголовков - проверяешь залогинился или нет, если да, то убираешь по-одному кукису.
Если нет, то копируешь заголовки, отправляешь, пока не поймешь, что из заголовков надо отправлять, после чего убираешь по одному из кукисов.
Не вижу никаких тут проблем.

150

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

Смотришь все кукисы в IE, вставляешь их в winhttp

А где их смотреть? Я вижу только заголовки.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

151

Re: AHK: Internet Explorer Platform APIs

https://i.imgur.com/hJEcGlY.png

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

152

Re: AHK: Internet Explorer Platform APIs

Это как заголовки отпралять?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

153

Re: AHK: Internet Explorer Platform APIs

Там же написано - куки.
На форуме уже обсуждали, что такое куки и как их отправлять.

154 (изменено: serzh82saratov, 2019-08-19 01:24:14)

Re: AHK: Internet Explorer Platform APIs

Примеров много, все немного отличаются, но везде в SetRequestHeader заголовок Cookie.

отправляешь без всяких заголовков - проверяешь залогинился или нет

Но я привёл пример на картинке, а там нет ни логина ни пароля, как же оно сразу залогинится.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

155

Re: AHK: Internet Explorer Platform APIs

Но я привёл пример на картинке, а там нет ни логина ни пароля, как же оно сразу залогинится.

Ну а куки для чего по-твоему нужны? ))))
Один заголовок отправляешь с куками.

156

Re: AHK: Internet Explorer Platform APIs

Ну а куки для чего по-твоему нужны? ))))

В гугле очень много написано.

Один заголовок отправляешь с куками.

Так я и не пойму где ты его сразу находишь такой, после которого сразу можно быть авторизованным.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

157 (изменено: Malcev, 2019-08-19 01:40:27)

Re: AHK: Internet Explorer Platform APIs

Отправляй сначала все кукисы, потом по-одному убирай, чтоб понять какой нужен именно.

HTTP.SetRequestHeader("Cookie", "ext-expires=1; ext-locale=2; jsessid=3")

158

Re: AHK: Internet Explorer Platform APIs

А что значит не нужен, как понять, если авторизации всё равно не будет.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

159

Re: AHK: Internet Explorer Platform APIs

Тогда не знаю. Не вижу смысла гадать без конкретного сайта.

160

Re: AHK: Internet Explorer Platform APIs

Не знаю как ты это делаешь, я раз уже третий пытаюсь на разных сайтах.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

161

Re: AHK: Internet Explorer Platform APIs

Хорошо. Залогинься в IE на нашем форуме.
И запусти следующий код.
Работает?

link := "http://forum.script-coding.com"
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", link, true)
HTTP.SetRequestHeader("Cookie", InternetGetCookieEx(link))
HTTP.Send()
HTTP.WaitForResponse()
msgbox % clipboard := http.responsetext

; Requires Internet Explorer 8.0 or later.
InternetGetCookieEx(URL) {
	Loop, 2 {
		if (A_Index = 2) {
			VarSetCapacity(cookieData, size, 0)
		}
		DllCall( "Wininet.dll\InternetGetCookieEx"
		       , "ptr", &URL, "ptr", 0, "ptr", &cookieData, "int*", size
		       , "uint", 8192 ; INTERNET_COOKIE_HTTPONLY  
		       , "ptr", 0 )
	}
	return StrGet(&cookieData)
}

162

Re: AHK: Internet Explorer Platform APIs

InternetGetCookieEx - пусто.

---------------------------
=Test.ahk
---------------------------
Error:  0x80070057 - Параметр задан неверно.

Specifically: SetRequestHeader

Line#
009: Menu,Tray,MainWindow
010: Menu,Tray,Disable,GuiClose
012: i := 0
059: link := "http://forum.script-coding.com"
060: HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
061: HTTP.Open("GET", link, true) 
062: MsgBox,InternetGetCookieEx(link)
---> 063: HTTP.SetRequestHeader("Cookie", InternetGetCookieEx(link)) 
064: HTTP.Send() 
065: HTTP.WaitForResponse() 
066: MsgBox,clipboard := http.responsetext
069: {
070: Loop,2
070: {
071: if (A_Index = 2) 

Continue running the script?
---------------------------
Да   Нет   
---------------------------

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

163

Re: AHK: Internet Explorer Platform APIs

Попробуй удалить IE, отрестартиться, и поставить заново.

164

Re: AHK: Internet Explorer Platform APIs

Такое решение не всем подойдёт.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

165

Re: AHK: Internet Explorer Platform APIs

Первый запрос

http://forum.script-coding.com/login.php

с куки

PHPSESSID: 1gipdj4tblgpfd9cv8fmlke4m6
punbb_cookie: MXwyNjU4M2Q4ZXwxNTY3Mzc1NjkwfDgwZDUwNzA5
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

166

Re: AHK: Internet Explorer Platform APIs

Если у всех глючнутые IE с различными настройками безопасности - откажись от затеи.

167

Re: AHK: Internet Explorer Platform APIs

Вчера настройки по умолчанию ставил.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

168

Re: AHK: Internet Explorer Platform APIs

Надо снести IE и поставить заново.
И тогда уже проверять.

169

Re: AHK: Internet Explorer Platform APIs

Примеры с WinHTTPRequest работают.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

170

Re: AHK: Internet Explorer Platform APIs

А зачем InternetGetCookieEx, я не понимаю как на этом сайте авторизоватся без IE.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

171

Re: AHK: Internet Explorer Platform APIs

Я опять не понимаю, что ты хочешь добиться.
То у тебя возвращаются куки, то нет.
То ты хочешь передать куки из IE в WinHTTPRequest, то спрашиваешь зачем InternetGetCookieEx...

172

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

То у тебя возвращаются куки, то нет.

Теперь пропали.

Malcev пишет:

То ты хочешь передать куки из IE в WinHTTPRequest, то спрашиваешь зачем InternetGetCookieEx...

Видимо это сложно.
Надо сначала понять как оно от начала до конца проходит.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

173 (изменено: Malcev, 2019-08-19 03:27:53)

Re: AHK: Internet Explorer Platform APIs

Вот написал пример запуска через ajax.
Правда, как вернуть данные из js в ahk, не создавая какого-либо события cвязанного с DOM не знаю, поэтому использовал глобальную переменную в JS.

link := "http://forum.script-coding.com/viewtopic.php?id=8336"


js=
(
function loadXMLDoc(url) {
    window.responseText = 'noAnswer'
    var xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == XMLHttpRequest.DONE) {   // XMLHttpRequest.DONE == 4
           if (xmlhttp.status == 200) {
               window.responseText = xmlhttp.responseText;
           }
           else if (xmlhttp.status == 400) {
              window.responseText = 'There was an error 400';
           }
           else {
               window.responseText = 'something else other than 200 was returned';
           }
        }
    };

    xmlhttp.open("GET", url, true);
    xmlhttp.setRequestHeader("Pragma", "no-cache");
    xmlhttp.setRequestHeader("Cache-Control", "no-cache, no-store");
    xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    xmlhttp.send();
}
)

ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true
ie.Navigate("http://forum.script-coding.com")
while ie.busy
   sleep 50

IID := "{332C4427-26CB-11D0-B483-00C04FD90119}"   ;// IID_IHTMLWindow2
window := ComObj(9,ComObjQuery(ie,IID,IID),1)
window.eval(js)
return

f11::
window.eval("loadXMLDoc('" link "')")
loop
{
   ResponseText := window.responseText
   if (responseText != "noAnswer")
      break
   sleep 50
}
msgbox % ResponseText

174

Re: AHK: Internet Explorer Platform APIs

Нечто похожее я сегодня тоже делал, но не нашёл этому применения в плане авторизованных запросов.
Насчёт переменной, не понял зачем ассинхронный запрос, если потом в цикле ждёшь. К какому то элементу событие можно не привязывать, можно добавить пустой скрипт с айди, но я знаю как его добавлять только через appendChild, а он на этом сайте выдаёт ошибку.


#SingleInstance Force
#NoEnv 


link := "http://forum.script-coding.com/viewtopic.php?id=8336"


js=
(
function loadXMLDoc(url) { 
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", url, false);
    xmlhttp.send();
	return xmlhttp.responseText;
}
)

ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true
ie.Navigate("http://forum.script-coding.com")
while ie.busy
   sleep 50

IID := "{332C4427-26CB-11D0-B483-00C04FD90119}"   ;// IID_IHTMLWindow2
window := ComObj(9,ComObjQuery(ie,IID,IID),1)
window.eval(js)
return

1::
	MsgBox % html := window.eval("loadXMLDoc('" link "')")
	Gui, Add, ActiveX, Border voDoc x0 y0 w866 h666, HTMLFile
	Gui, Show 
	oDoc.Write(html) 
	return

Esc:: 
GuiEscape:
GuiClose:
	ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

175

Re: AHK: Internet Explorer Platform APIs

А у тебя мой скрипт, если ты залогинен на нашем сайте, после нажатия f11 выдает, что ты не залогинен?

176

Re: AHK: Internet Explorer Platform APIs

Ни после, ни до.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

177

Re: AHK: Internet Explorer Platform APIs

Ты запускаешь скрипт, после появления сайта сам ручками логинишься, потом нажимаешь f11.

178

Re: AHK: Internet Explorer Platform APIs

serzh82saratov пишет:

Насчёт переменной, не понял зачем ассинхронный запрос, если потом в цикле ждёшь

Да, ассинхронный запрос тут не нужен.
Я просто первый попавшийся код перенес.
Ну и если через jquery работать, то там тоже callback функцию надо указывать.

179

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

Ты запускаешь скрипт, после появления сайта сам ручками логинишься

Хорошо что уточнил.  У меня видимо из за того что висела копия IE на которой тоже был вход, что то было не так. Если ввести ручками, то 9 из 10 по нажатию вылазят ошибки, потом посмотрю, но бывает что выскакивает авторизованная страница. Если ввести пароли, закрыть скрипт, запустить, то сразу авторизованный, по кнопке тоже.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

180

Re: AHK: Internet Explorer Platform APIs

У меня таких ошибок нету.
Можно и дальше отлавливать ошибки и разбираться в их причине, но на кривом IE в этом нету смысла.

181

Re: AHK: Internet Explorer Platform APIs

new XMLHttpRequest();

По моему это аналог

ActiveXObject("Msxml2.XMLHTTP");
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

182

Re: AHK: Internet Explorer Platform APIs

На старых IE 6 версии и ниже использовался ActiveXObject("Msxml2.XMLHTTP").

183

Re: AHK: Internet Explorer Platform APIs

Значит я старые примеры смотрел, но оно и на 11 работает.
А плюшки есть?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

184 (изменено: serzh82saratov, 2019-08-19 18:44:09)

Re: AHK: Internet Explorer Platform APIs

В смысле в XMLHttpRequest есть referer, в отличие от Msxml2?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

185

Re: AHK: Internet Explorer Platform APIs

Ну так проверь.
Сайт, где показывается реферер я уже постил.
Пример с вызовами ajax тоже есть.
Осталось в код вставить какой-нибудь referer и посмотреть ответ сервера.

186

Re: AHK: Internet Explorer Platform APIs

Надо будет, я не у компа, думал может ты посмотрел.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

187

Re: AHK: Internet Explorer Platform APIs

Ну и с этими запросами всё как то сложно, может тут реферер  работает, а другое что то не работает, и результат тот же, в каком то случае. В общем MSDN это не для всех.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

188

Re: AHK: Internet Explorer Platform APIs

Для успешного логина требования в реферере я встретил только на inbox.lv, хотя имел дело с достаточно большим количеством сайтов.
А так как Msxml2.XMLHTTP не использую, то и забыл, что у него referer не отсылается.

189

Re: AHK: Internet Explorer Platform APIs

И раньше, до его редизайна, такого требования не было.
Ну или взять filemail.com.
Больше года скрипт работал исправно и пару недель назад перестал.
Пришлось заново смотреть отправляемые заголовки и оказалось, что теперь сервер требует отправлять:

HTTP.SetRequestHeader("Source", "Web")

Так что, дело не всегда в MSDN.

190

Re: AHK: Internet Explorer Platform APIs

Ну и вообще на Win10 IE глючнее.
Например если следующий код запустить на Win7 и во время его выполнения вручную потыкать по ссылкам, то он будет работать.
На Win10 выдаст ошибку: 0x800700AA - The requested resource is in use.

ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true
loop
{
   ie.Navigate("http://forum.script-coding.com/")
   while ie.busy
      sleep 50
   sleep 3000
}

191

Re: AHK: Internet Explorer Platform APIs

teadrinker на оффоруме привел более правильное получение результата с колбеков:

Ajax=
(
var xhr = new XMLHttpRequest();
xhr.open("GET", 'http://forum.script-coding.com/viewtopic.php?id=8336', true);
var response;
xhr.onload = function () {
  if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200)
    response = '|' + xhr.responseText + '|';
};
xhr.send();
)

ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true
ie.Navigate("http://forum.script-coding.com/viewtopic.php?id=8336")
while ie.busy
   sleep 50

IID := "{332C4427-26CB-11D0-B483-00C04FD90119}"   ;// IID_IHTMLWindow2
window := ComObj(9,ComObjQuery(ie,IID,IID),1)
window.eval(Ajax)
while !res := window.eval("response")
   Sleep, 50
window.eval("response = '';")
MsgBox, % res

192 (изменено: serzh82saratov, 2019-08-20 20:09:07)

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

Ну и вообще на Win10 IE глючнее.

Да, это я сразу понял как поставил 10, и дело касается практически всего. Но что остаётся делать, через пол года поддержки 7 не будет. Новое не допилили, а прежнее выпиливают.

Malcev пишет:

teadrinker на оффоруме привел более правильное получение результата с колбеков

Засланный казачок, помогает только своим.
Но непонятно, зачем нужны такие гибриды. Почему то не работает waitForResponse, но при желании думаю это можно допилить, или установить кэлбек на анк функцию. Также не ясно почему java не может сразу вернуть объект, то есть почему так не работает

return new XMLHttpRequest();  

Тут вроде про метод этого объекта https://docs.microsoft.com/en-us/previo … 5(v=vs.85).

Ajax=
(
var xhr = new XMLHttpRequest();  
)

ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true
ie.Navigate("http://forum.script-coding.com/viewtopic.php?id=8336")
while ie.busy
   sleep 50

IID := "{332C4427-26CB-11D0-B483-00C04FD90119}"   ;// IID_IHTMLWindow2
window := ComObj(9,ComObjQuery(ie,IID,IID),1) 
window.eval(Ajax)
xhr := window.eval("xhr")  
xhr.open("GET", "http://forum.script-coding.com/viewtopic.php?id=8336", 0)  
xhr.send()
xhr.waitForResponse()
MsgBox Wait
MsgBox % xhr.responseText
ie.quit()
ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

193 (изменено: Malcev, 2019-08-20 23:12:26)

Re: AHK: Internet Explorer Platform APIs

waitForResponse - это метод не XMLHttpRequest, а ServerXmlHttpRequest.
А его в джаваскрипт использовать не выйдет:
https://www.c-amie.co.uk/technical/emul … avascript/