<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Копирование текста из скрытых окон]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12724&amp;type=atom" />
	<updated>2017-11-03T13:00:07Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12724</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=120721#p120721" />
			<content type="html"><![CDATA[<p>Вот это поворот! Оказывается команде движения курсора нужно передавать текущее состояние модификаторов и кнопок.<br /><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms645616(v=vs.85).aspx">msdn — WM_MOUSEMOVE message parameters</a></p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-11-03T13:00:07Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=120721#p120721</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=120717#p120717" />
			<content type="html"><![CDATA[<p>Кстати, <strong>stealzy</strong>, у вас в 17 коде ошибка.<br />Вместо <br /></p><div class="codebox"><pre><code>PostMessage, 0x200, 0, % lParam(x+=20, y),, % t</code></pre></div><p>Надо<br /></p><div class="codebox"><pre><code>PostMessage, 0x200, 0x1, % lParam(x+=20, y),, % t</code></pre></div><p>С этим исправлением будет работать и в хроме и в интернет эксплорере.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-11-03T12:31:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=120717#p120717</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=120716#p120716" />
			<content type="html"><![CDATA[<p>У меня работает.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-11-03T09:12:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=120716#p120716</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=120714#p120714" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong> Пример от stealzy <a href="http://forum.script-coding.com/viewtopic.php?pid=116409#p116409">http://forum.script-coding.com/viewtopi … 09#p116409</a> работает для firefox, а Ваш для Google Chrome нет.</p>]]></content>
			<author>
				<name><![CDATA[Vicoriyan]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38658</uri>
			</author>
			<updated>2017-11-03T08:40:38Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=120714#p120714</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116418#p116418" />
			<content type="html"><![CDATA[<p>Ради спортивного интереса. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-06-06T11:47:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116418#p116418</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116416#p116416" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong>, вам то зачем эти костыли, когда есть Selenium, WinHttp, vk API?</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-06-06T11:01:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116416#p116416</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116414#p116414" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>Я испытывал для просто неактивного окна, но вы упустили DetectHiddenWindow On в вашем коде.</p></blockquote></div><p>В моём коде он не нужен, так как PostMessage идет напрямую к контролу.<br />Да, действительно для Лисы нужно посылать PostMessage, 0x200.<br />И у меня при при посылке сообщений в скрытое окно лисы, оно не появляется:<br /></p><div class="codebox"><pre><code>DetectHiddenWindows on
winhide, ahk_id 0x60a58
PostMessage, 0x200, 0, ((320&lt;&lt;16)^700),, ahk_id 0x60a58
sleep 1
PostMessage, 0x201, 0x1, ((320&lt;&lt;16)^700),, ahk_id 0x60a58
sleep 1
PostMessage, 0x200, 0, ((620&lt;&lt;16)^800),, ahk_id 0x60a58
sleep 1
PostMessage, 0x202,, ((620&lt;&lt;16)^800),, ahk_id 0x60a58
return</code></pre></div><p>С гуглхромом так не сработает и ему надо посылать shift+LClick:<br /></p><div class="codebox"><pre><code>F1::
winhide, Серый форум - Google Chrome
PostMessage, 0x201, 0x1, ((320&lt;&lt;16)^700),, ahk_id 0x13037a   ; id контрола=0x13037a
PostMessage, 0x202,, ((320&lt;&lt;16)^700),, ahk_id 0x13037a
PostMessage, 0x201, 0x4 | 0x1, ((620&lt;&lt;16)^800),, ahk_id 0x13037a
PostMessage, 0x202, 0x4, ((620&lt;&lt;16)^800),, ahk_id 0x13037a
return</code></pre></div><p>С IE не работает ни один ни другой вариант.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-06-06T09:18:04Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116414#p116414</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116409#p116409" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong>, это был чисто логический вывод, т.к. очевидно, что отправки двух сообщений вида: лкм зажата, лкм отжата в двух координатах недостаточно для выделения.<br />Ну вот, сходу написал, в моем firefox отлично работает даже без активации окна:<br /></p><div class="codebox"><pre><code>t := &quot;ahk_exe firefox.exe&quot;
CoordMode Mouse, Screen
MouseGetPos x, y
WinGetPos xW, yW,,, % t

PostMessage, 0x201, 1, % lParam(x-=xW, y-=yW),, % t
Loop 10
	PostMessage, 0x200, 0, % lParam(x+=20, y),, % t
PostMessage, 0x202, 0, % lParam(x, y),, % t

lParam(x, y) {
	Return lParam := x &amp; 0xFFFF | (y &amp; 0xFFFF) &lt;&lt; 16 
}</code></pre></div><p>Что интересно, работает даже для свернутого окна, но оно в этом случае активируется.<br /></p><div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>winhide</p></blockquote></div><p>Я испытывал для просто неактивного окна, но вы упустили DetectHiddenWindow On в вашем коде.<br />UPD: Скрытое winhide окно лисы проявляется при получении PostMessage. В любом случае, не думаю, что можно копировать из скрытого winhide окна. Есть и другие методы скрытия.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-06-06T05:02:12Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116409#p116409</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116406#p116406" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alekstankist111 пишет:</cite><blockquote><p>ControlClick, D X375 Y220, AAA - Google Chrome</p></blockquote></div><p>А где вы прочитали, что D может идти вторым параметром?<br /></p><div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>В вашем скрипте между нажатием и отжатием не хватает передачи окну сообщений движения курсора (WM_MOUSEMOVE = 0x200) с помощью PostMessage</p></blockquote></div><p>Работающий пример приведёте?<br />Гугл Хром у меня реагирует на отправление Shift+MouseClick, IE и Firefox же нет.<br />Не знаю почему.<br /></p><div class="codebox"><pre><code>F1::
winhide, Серый форум - Google Chrome
PostMessage, 0x201, 0x1, ((320&lt;&lt;16)^700),, ahk_id 0x13037a   ; id контрола=0x13037a
PostMessage, 0x202,, ((320&lt;&lt;16)^700),, ahk_id 0x13037a
PostMessage, 0x201, 0x4 | 0x1, ((620&lt;&lt;16)^500),, ahk_id 0x13037a
PostMessage, 0x202, 0x4, ((620&lt;&lt;16)^500),, ahk_id 0x13037a
winshow, Серый форум - Google Chrome
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-06-05T21:58:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116406#p116406</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116365#p116365" />
			<content type="html"><![CDATA[<p>Если речь идет об автоматизации браузеров, то, думаю, нужен JavaScript, по AutoHotkey можно только активировать пользовательский JavaScript.</p>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2017-06-04T14:24:31Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116365#p116365</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116363#p116363" />
			<content type="html"><![CDATA[<p>Я писал про firefox, у меня там все работает.<br />У vk есть API, тут даже есть темы про работу с ним.<br />А еще можно через WinHttp:<br /></p><div class="codebox"><pre><code>vkid := &quot;id123456789&quot;, login := &quot;+79876543210&quot;, pass := &quot;p@ssword&quot;

; Константы, используемые в WinHttpRequest
global WinHttpRequestOption_EnableRedirects := 6, WinHttpRequestOption_MaxAutomaticRedirects := 14, WinHttpRequestOption_EnableHttpsToHttpRedirects := 12

; Создаём объект для запросов по HTTP протоколу
global oHttpRequest := ComObjCreate(&quot;WinHttp.WinHttpRequest.5.1&quot;)
;Включаем автоматические редиректы
oHttpRequest.Option(WinHttpRequestOption_EnableRedirects) := -1
;Включаем автоматические редиректы с HTTP на HTTPS
oHttpRequest.Option(WinHttpRequestOption_EnableHttpsToHttpRedirects) := -1
;Выставляем максимальное количество редиректов
oHttpRequest.Option(WinHttpRequestOption_MaxAutomaticRedirects) := 20

writeLn(&quot;Загружаем основную страницу сайта&quot;)
; Загружаем основную страницу входа
oHtmlDoc1 := documentFromURL(&quot;https://vk.com/&quot;)
writeLn(&quot;Получаем первую форму&quot;)
; Получаем первую по счёту форму
oForm := oHtmlDoc1.forms[0]
; Заполняем в форме поле email и пароль
oForm[&quot;email&quot;].value := login
oForm[&quot;pass&quot;].value := pass
; Эмулируем отправку формы
submitForm(oForm)
; Проверяем - есть ли в тексте сообщение о том, что авторизация прошла успешно
if (InStr(oHttpRequest.ResponseText, &quot;LoginDone&quot;) &lt;= 0) {
	MsgBox % &quot;Авторизация не удалась ! Проверьте логин и пароль&quot;
	Exit
}
; Загружаем страницу профиля
oHtmlDoc2 := documentFromURL(&quot;https://vk.com/&quot; vkid)
; Получаем ссылку на наш основной профиль и &quot;переходим по ней&quot;
; oHtmlDoc := documentFromURL(oHtmlDoc2.GetElementByID(&quot;l_pr&quot;).left_row)
; Выводим текст из блока с именем и фамилией
MsgBox % oHtmlDoc2.GetElementByID(&quot;page_info_wrap&quot;).innerText
Return

; Функция загрузки и построения документа с указанного URL
documentFromURL(sURL) {
	writeLn(&quot;documentFromURL&quot;)
	writeLn(&quot;   URL: &quot; . sURL)
	oHttpRequest.Open(&quot;GET&quot;, sURL, false)
	oHttpRequest.Send()
	return documentFromHTML(oHttpRequest.responseText, sURL)
}
; Функция создания документа из HTML кода
documentFromHTML(ByRef sHTMLCode, ByRef sBaseURL) {
	writeLn(&quot;documentFromHTML&quot;)
	writeLn(&quot;   Base URL: &quot; . sBaseURL)
	; Создаём объект для парсинга HTML кода
	oDoc := ComObjCreate(&quot;htmlfile&quot;)
	oDoc.open()
	; Вставляем базовый тэг чтобы у относительных ссылок была верная адрессация от базового адреса
	oDoc.write(&quot;&lt;base href=&quot;&quot;&quot; . sBaseURL . &quot;&quot;&quot;&gt;&quot;)
	oDoc.close()
	;oDoc.write(sHTMLCode)
	oDoc.body.innerHTML := sHTMLCode
	return oDoc
}
; Функция эмулятор отправки формы
submitForm(ByRef oForm){
	writeLn(&quot;submitForm&quot;)
	; Получаем ссылку на объект Window от документа формы
	oScript := oForm.document.Script
	; Сборка строки запроса формы
	loop , % oForm.elements.length
	{
		i++
		if oForm.elements[i].name != &quot;&quot;
		{
			; Собираем значения полей формы в строку и кодируем их имена и значения
			sBody .= oScript.encodeURIComponent(oForm.elements[i].name) . &quot;=&quot; . oScript.encodeURIComponent(oForm.elements[i].value) . &quot;&amp;&quot;
		}
	}
	StringLeft, sBody, sBody, StrLen(sBody)-1

	; Получаем текущий адрес на котором мы находимся (для заполнения referer и настройки свойства &quot;action&quot; формы )
	sCurrentURL := oHttpRequest.Option(1)
	; Для формы BASE hRef не срабатывает, поэтому искусственно вычисляем полный путь запроса формы
	oForm.action := buildURL(sCurrentURL,oForm.action)

	writeLn(&quot;   Referer: &quot; . sCurrentURL)
	writeLn(&quot;   form action: &quot; . oForm.action)
	writeLn(&quot;   Body: &quot; . sBody)

	oHttpRequest.open(&quot;POST&quot;, oForm.action, false)
	; Указываем метод кодирования данных
	oHttpRequest.setRequestHeader(&quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded&quot;)
	; Выставляем Referer, дабы сайты не ругались, что мы себя плохо ведём.
	if sCurrentURL != &quot;&quot;
	{
		oHttpRequest.setRequestHeader(&quot;Referer&quot;, sCurrentURL)
	}
	; Отправляем данные формы
	oHttpRequest.send(sBody)
}
; Функция для построения полного пути из относительного для URL
buildURL(ByRef sBaseURL, ByRef sURL) {
	; Создаём HTML документ с единственной ссылкой
	oDoc := documentFromHTML(&quot;&lt;a href=&quot;&quot;&quot; . sURL . &quot;&quot;&quot;&gt;&quot;, sBaseURL)
	; Берём href от этой ссылки.
	return oDoc.all.tags(&quot;a&quot;)[0].href
}
; Функция для вывода строки в консоль
writeLn(text){
	FileAppend % text &quot;`n&quot;, *
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-06-04T13:16:59Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116363#p116363</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116362#p116362" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong>, к сожалению, в IE тоже не работает, по крайней мере, PostMessage. <br />Сайт ВК, требуется копировать сообщение (и, в дальнейшем, вставлять его в текстовый файл, но с этим проблем нет).<br />Есть другие способы? Основная загвоздка в том, чтобы делать это мгновенно, сразу после получения сообщения. Сам механизм такого реагирования меня не интересует, с ним я справляюсь, основную проблему представляет именно копирование из области скрытого окна.<br /></p><div class="codebox"><pre><code>
F1::
WinHide, AAA - Internet Explorer
ControlClick, D X375 Y220, AAA - Internet Explorer
sleep, 1
PostMessage, 0x200,,,, AAA - Internet Explorer
sleep, 1
ControlClick, U X760 Y390, AAA - Internet Explorer  
sleep, 1
ControlSend ^{vk43}, AAA - Internet Explorer
return
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alekstankist111]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=37818</uri>
			</author>
			<updated>2017-06-04T13:07:27Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116362#p116362</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116352#p116352" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong>, вот, я тоже заметил, что в хроме не работает. ТОгда завтра установлю мозилу, проверю работу, и если всё сложится, закрою тему.</p>]]></content>
			<author>
				<name><![CDATA[alekstankist111]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=37818</uri>
			</author>
			<updated>2017-06-03T22:15:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116352#p116352</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116351#p116351" />
			<content type="html"><![CDATA[<p><strong>alekstankist111</strong>, как оказалось, предложенные мной способы работают в firefox, но не в хромых.<br />Хромы не воспринимают ввод в неактивное окно.</p><p>Вообще, сайт и блок в студию. Никто не копирует текст из браузера, чтобы получить контент с сайта.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-06-03T21:59:43Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116351#p116351</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Копирование текста из скрытых окон]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116350#p116350" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong>, спасибо за указания! Буду разбираться дальше.</p>]]></content>
			<author>
				<name><![CDATA[alekstankist111]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=37818</uri>
			</author>
			<updated>2017-06-03T21:41:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116350#p116350</id>
		</entry>
</feed>
