<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Как передать управление из JS в AHK?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5772&amp;type=atom" />
	<updated>2011-05-04T16:26:50Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5772</id>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48103#p48103" />
			<content type="html"><![CDATA[<p>Спасибо всем за участие. Но я все сделал по своей задумке.<br />Использую Оперу, так вот в ней есть поддержка пользовательских скриптов (user-JS), которые автоматически выполняются после загрузки страницы. Причем в данных user-JS можно указать сайты, на которых скрипт будет действовать и на каких нет.</p><p>Код user JS скрипта:<br /></p><div class="codebox"><pre><code>// ==UserScript==
// @include сайт, на котором скрипт будет работать
// ==/UserScript==

window.open(&#039;http://www.google.ru/&#039;,&#039;&#039;,&#039;&#039;);</code></pre></div><p>Далее AHK просто отлавливает открытие вкладки google и выполняет нужные действия.<br />Вырезка из кода:<br /></p><div class="codebox"><pre><code>...
WinWait, Google - Opera
if ErrorLevel
{
    MsgBox, Not loaded.
    return
}
else
{
Send, ^{sc011}
Sleep, 300
и т.д.
...
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[shayah]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26934</uri>
			</author>
			<updated>2011-05-04T16:26:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48103#p48103</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48098#p48098" />
			<content type="html"><![CDATA[<p>Грубый, но простой способ.<br />Когда-то писал бота для одной онлайн игры. Пользовался Firefox 3. У него был такой скин, что кнопка &quot;обновить&quot; и &quot;остановить&quot; были совмещены. Я выбирал координату на этой кнопке, что бы цвет этого пикселя был разный при загрузке страницы и после ее окончания. (При наведении курсора на эту кнопку она не меняла свой цвет, это важно)</p><p>Win+1 определить координаты и цвет пикселя, полученный результат вставить в начало скрипта вместо имеющихся данных.<br />F1 запустить скрипт.</p><p>!!! В Firefox 4 эта кнопка тоже совмещена, и при наведении курсора на нее, она меняет свой цвет, поэтому способ определения координат через Win+1 не подойдет, если в опере кнопка такая же. Надо использовать скрипт без наведения курсора. Но это уже мелочи, если скрипт такой подойдет, разовьем тему</p><div class="codebox"><pre><code>col_rdy := &quot;0xFCFAF8&quot; 
pos_rdyX := &quot;1270&quot; 
pos_rdyY := &quot;13&quot;

F1:: ; запуск цикла
FFready(col_rdy,pos_rdyX,pos_rdyY) ; ждем загрузки страницы
return


FFready(col,pixX,pixY) 
{
    Loop 
    {
        WinActivate, ahk_class MozillaUIWindowClass ; ТУТ вписать ahk_class для Оперы
        PixelGetColor, OutputVar, %pixX%, %pixY%  
        if (outputvar = col)
        {
            ToolTip ready
            ;~ break ; раскомментировать для практических целей, что бы цикл завершался
        }
        if (outputvar &lt;&gt; col)
        {
            ToolTip NOT Ready
            sleep, 100
        }
    }
}

#1:: ; запись переменных
    Gui, destroy
    coordmode mouse
    MouseGetPos, PixX, PixY, 0
    PixelGetColor, PixCol, PixX, PixY
    Gui, Add, Text,, Значения переменных
    Gui, Add, Edit, , col_rdy := &quot;%PixCol%&quot; `npos_rdyX := &quot;%PixX%&quot; `npos_rdyY := &quot;%PixY%&quot;
    GUI, SHOW, AutoSize Center
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2011-05-04T15:06:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48098#p48098</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48046#p48046" />
			<content type="html"><![CDATA[<p>Значит состояние (загрузки) можно определить из заголовка окна?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2011-05-03T09:09:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48046#p48046</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48042#p48042" />
			<content type="html"><![CDATA[<p><a href="http://www.autohotkey.com/forum/post-338371.html#338371">Detect when a page is loaded</a></p><p>или</p><div class="codebox"><pre><code>WinGetTitle, заголовок_окна_Оперы, ahk_class OperaWindowClass
временный_заголовок:=&quot;страница не загружена&quot;
MsgBox, % заголовок_окна_Оперы
SetTimer, проверим_обновление_заголовка, 2000
Return

проверим_обновление_заголовка:
SetTimer, проверим_обновление_заголовка, Off
WinGetTitle, заголовок_окна_Оперы, ahk_class OperaWindowClass
if (заголовок_окна_Оперы=изменённый_заголовок) ; изменённый нами прежде заголовок обновился
{
	MsgBox, Страница обновлена
	изменённый_заголовок=
}
else if заголовок_окна_Оперы not Contains % временный_заголовок
{
	WinSetTitle, %заголовок_окна_Оперы%, ,%заголовок_окна_Оперы% . %временный_заголовок%
	изменённый_заголовок:=заголовок_окна_Оперы
}	
SetTimer, проверим_обновление_заголовка, On
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[kirtech]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26525</uri>
			</author>
			<updated>2011-05-03T00:49:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48042#p48042</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48040#p48040" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Тогда можно при помощи команды ImageSearch провести поиск фрагмента этой полосы загрузки, например &quot;Отправка запроса на&quot;. Если ничего не найдено, значит полосы загрузки нет. Следовательно, страница загрузилась.</p></blockquote></div><p>нее, мне так не пойдет. это нужно лишь на определеном сайте делать.<br />Вообщем-то я сделал все это способом описанным выше. Завтра причяшу все до конца и выложу.</p>]]></content>
			<author>
				<name><![CDATA[shayah]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26934</uri>
			</author>
			<updated>2011-05-02T20:30:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48040#p48040</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48039#p48039" />
			<content type="html"><![CDATA[<p>Тогда можно при помощи команды ImageSearch провести поиск фрагмента этой полосы загрузки, например &quot;Отправка запроса на&quot;. Если ничего не найдено, значит полосы загрузки нет. Следовательно, страница загрузилась.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2011-05-02T19:36:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48039#p48039</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48038#p48038" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Я не пользуюсь Opera, поэтому и спрашиваю: как Вы узнаёте, что страница уже загрузилась? Там индикатор какой-нибудь или другие признаки?</p></blockquote></div><p>Там внизу страницы появляется так называемая полоса загрузки, которая по окончании загрузки страницы пропадает.<br /><a href="http://radikal.ru/F/i043.radikal.ru/1105/37/7fdff07d1d21.jpg.html"><span class="postimg"><img src="http://i043.radikal.ru/1105/37/7fdff07d1d21t.jpg" alt="http://i043.radikal.ru/1105/37/7fdff07d1d21t.jpg" /></span></a></p><p>Вроде нашел решение! На JS делаем алерт после полной загрузки страницы, а AHK c помощью IfWinActive отлавливает это окно, жмет enter и дальше уже делает, что нужно )</p>]]></content>
			<author>
				<name><![CDATA[shayah]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26934</uri>
			</author>
			<updated>2011-05-02T19:27:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48038#p48038</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48037#p48037" />
			<content type="html"><![CDATA[<p>Я не пользуюсь Opera, поэтому и спрашиваю: как Вы узнаёте, что страница уже загрузилась? Там индикатор какой-нибудь или другие признаки?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2011-05-02T19:21:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48037#p48037</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48036#p48036" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>По каким признакам определяется, что web-страница загружена? Окно программы развёрнуто?</p></blockquote></div><p>я сам в JS не силен, но вот пример реализации:<br /></p><div class="codebox"><pre><code> window.onload = function(){ 
    &quot;действия по передаче управления AHK&quot;
  }</code></pre></div><p>Пытался найти как на JS сэмулировать нажатие клавиш клавиатуры, но так понял , что это не возможно из-за политики безопасности.<br />Может еще как-то по другому можно реализовать?</p><p>Окно программы развернуто )</p>]]></content>
			<author>
				<name><![CDATA[shayah]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26934</uri>
			</author>
			<updated>2011-05-02T19:06:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48036#p48036</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48030#p48030" />
			<content type="html"><![CDATA[<p>OFF: <strong>kirtech</strong>, это обратный путь, как использовать VBScript/JScript посредством Microsoft Script Control из-под AHK <em>[т.е., это вовсе не «Windows Scripting», заявленный в заголовке по ссылке]</em>, либо же напрямую вызывая функции Automation.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-05-02T16:07:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48030#p48030</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48029#p48029" />
			<content type="html"><![CDATA[<p>Из англоязычной справки:<br /></p><div class="quotebox"><blockquote><p>Embedded Windows Scripting<br /><strong>VBScript, JScript, and Component Object Model (COM)</strong><br />VBScript and JScript may be embedded in a script via <a href="http://www.autohotkey.net/~easycom//">Windows Scripting for AutoHotkey</a>, which also provides access to COM.<br />Also, COM may be used directly via DllCall as demonstrated at <a href="http://www.autohotkey.com/wiki/index.php?title=COM_Wrappers">www.autohotkey.com/wiki/index.php?title=COM_Wrappers</a> .</p></blockquote></div><p>C VBScript и JScript я не знаком <img src="//forum.script-coding.com/img/smilies/neutral.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[kirtech]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26525</uri>
			</author>
			<updated>2011-05-02T15:39:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48029#p48029</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48027#p48027" />
			<content type="html"><![CDATA[<p>По каким признакам определяется, что web-страница загружена? Окно программы развёрнуто?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2011-05-02T14:33:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48027#p48027</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Как передать управление из JS в AHK?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48025#p48025" />
			<content type="html"><![CDATA[<p>Нужно чтобы после загрузки web-страницы выполнялся скрипт в AHK.<br />Есть идея реализовать это через JS+AHK.<br />В JS есть onLoad, но нужно как то, чтобы тут сработал скрипт AHK.<br />Думал может можно сэмулировать нажатие клавиш на клавиатуре с помощью JS - но я так понял что нельзя.<br />P.S. Браузер Опера.</p>]]></content>
			<author>
				<name><![CDATA[shayah]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26934</uri>
			</author>
			<updated>2011-05-02T13:32:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48025#p48025</id>
		</entry>
</feed>
