<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14369&amp;type=atom" />
	<updated>2018-12-04T16:57:34Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=14369</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130219#p130219" />
			<content type="html"><![CDATA[<p>1) Sleep 50 в коде я уже поправил, там поставил счетчик, который считает ~20 секунд и кидает ошибку.<br />2) попробовал сделать, но я сам по себе вебсокет еррор вроде не ловил еще</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2018-12-04T16:57:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130219#p130219</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130206#p130206" />
			<content type="html"><![CDATA[<p>Сам по себе скрипт chrome.ahk не стабильный. Та же функция Call().<br /></p><div class="codebox"><pre><code>Call(DomainAndMethod, Params:=&quot;&quot;, WaitForResponse:=True)
{
	...
	this.responses[ID] := False
	while !this.responses[ID] ;А если браузер решит оборвать соединение? в таком случае переменная this.Connected будет false, но цикл этого не обработает
		Sleep, 50
	...
}</code></pre></div><br /><p>При отправке данных в браузер(в алгоритме A-B). Происходит следующее:<br /></p><div class="quotebox"><blockquote><p>A<br />event Message<br />event Message<br />event Message<br />event Error<br />event Close<br />B</p></blockquote></div><p>Всё как бы работает, но пугает тот момент, что браузер отправляет сигнал об ошибке.(на уровне сокетов)</p><p>А вот, когда скрипт стопорится на том цикле, что мы выше обсуждали. То лог выглядит также, но без события Close.<br />Или скрипт не обрабатывает(упустил его или еще чет, многопоточности не хватает:) ) или же сам ActiveX, что более вероятно.<br />У меня при таком раскладе в некоторых случаях сверху еще и ошибка вылазит о проблеме с websocket&#039;ами.<br />Что-то вроде такого:<br /><span class="postimg"><img src="https://artkiev.com/all/b19/javascript-hide-error_r7mmzs3a6h8a.jpg" alt="https://artkiev.com/all/b19/javascript-hide-error_r7mmzs3a6h8a.jpg" /></span></p><br /><p>Значит, решение предлагаю следующее:<br />находим такую функцию<br /></p><div class="codebox"><pre><code>/*
	Internal function triggered when the script receives a message on
	the WebSocket connected to the page.
*/
Event(EventName, Event)</code></pre></div><p>И меняем в ней такое условие:<br /></p><div class="codebox"><pre><code>else if (EventName == &quot;Error&quot;)
{
	this.ws.close()
	throw Exception(&quot;Websocket Error!&quot;)
}</code></pre></div><p>У меня вроде как, да заработало.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;offtop</div><div class="fancy_spoiler"><p>Да и вообще, метод общения с браузером косячный. Не думаю, что было бы правильно использовать ActiveX для таких целей.<br />Ведь помимо websocket&#039;ов, выделяется память для целого браузера. А там и Flash&#039;и и пр.<span style="color: gray">(поправьте, если не прав)</span><br />Было бы лучше, если бы автор написал websocket с нуля.</p></div></div>]]></content>
			<author>
				<name><![CDATA[MandarinKa02]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34409</uri>
			</author>
			<updated>2018-12-04T14:11:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130206#p130206</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130204#p130204" />
			<content type="html"><![CDATA[<p><strong>MandarinKa02</strong> микрооффтоп xD :<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>Понимаю, возможно будет чутка смешно... от нечего делать в свободное время пилю себе коллекцию обоев xD . (добавляю в закладки/теперь уже просто в файл строками).<br />Сейчас дошел до того, что прохожусь по Favourites deviantart&#039;a: взял н-ное количество картинок (с которых начал), глянул в каких favourites они находятся(добавил в закладки). Потом я пошел в разнос и сейчас у меня в закладках куча (реально большая) favourites, из которых я скриптом ahk вытаскиваю ссылки на галлереи пользователей и закидываю эти ссылки в файл xD .<br />Скорее сейчас этим занимаюсь ибо интересно допиливать напильником скрипт, как то втянулся xD .</p></div></div><p>Хром запущен с ярлыка в режим отладки, вот как выглядит объект в ярлыке:<br /></p><div class="codebox"><pre><code>&quot;C:\Program Files (x86)\Google\Chrome\Application\chrome.exe&quot; &quot; --remote-debugging-port=9222&quot;</code></pre></div><p>Собственно, код:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>
#Include Chrome.ahk
Gogogo = 1
Added = 0

^F1::
{
PageInst := Chrome.GetPage(1)
	;ToolTip, F
	Sleep 100
	A := Chrome.GetPageList()
	Sleep 200
	;ToolTip, G
	for vKey, oPage in A
	{
		vUrl := oPage.url
		bmCheck := InStr(vUrl, &quot;https://www.deviantart.com&quot;,,, 1)
		if (bmCheck = 1)
		{
			id := oPage.id
			;PageInst.Call(&quot;Target.activateTarget&quot;, {targetId: id})
			Fl = 1
			Break
		}
	}
	Try
		PageInst.Disconnect()
	;ToolTip, H
	Sleep 100
	if (Fl = 0)
	{
		Sleep 100
		SoundPlay, da/finish.wav, Wait
		ToolTip, %Added%
		Return
	}

	Try
		PageInst := Chrome.GetPageBy(&quot;id&quot;, id)

	Catch, e
	{
		A := e.Message
		MsgBox, %A%
		Return
	}
	;ToolTip, G

	Sleep 100
	While (Gogogo = 1)
	{
		MouseGetPos, A, B
		MouseMove, A+10, B+10
		Sleep 200
		MouseMove, A, B
		Sleep 50 ;Дергаем мышкой чтобы комп не заснул и монитор не погас.
		Try
			numEl := PageInst.Evaluate(&quot;document.getElementsByClassName(&#039;torpedo-thumb-link&#039;).length;&quot;).Value
		Catch e
		{
			A := e.Message
			Try
				PageInst.Disconnect()
			Sleep 1000
			Gosub, ^F1
			Return
		}
		Sleep 100

		Loop %numEl%
		{
			if (nume &lt;&gt; 0)
			{
				Tooltip, %curP% / %alP% - %A_Index% / %numEl% / %Added%
			} Else {
				Tooltip, Last - %A_Index% / %numEl% / %Added%
			}
			Sleep 50
			lnk := &quot;document.getElementsByClassName(&#039;torpedo-thumb-link&#039;)[&quot; . A_Index - 1 . &quot;].href;&quot;
			Try
				El := PageInst.Evaluate(lnk).Value
			Catch e
			{
				A := e.Message
				Sleep 100
				Try
					PageInst.Disconnect()
				Sleep 1000
				Gosub, ^F1
				Return
			}
			Sleep 50
			NewStr := SubStr(El, 1 , InStr(El, &quot;/&quot;,,, 4))
			NewStr2 = %NewStr%gallery/
			MyFile = da\daList.txt
			FileRead, filetext, %MyFile%
			res := RegExMatch(filetext, &quot;m`a)^\Q&quot; . NewStr2 . &quot;\E$&quot;)
			If (res = 0)
			{
				FileAppend, % (filetext=&quot;&quot; ? &quot;&quot; : &quot;`n&quot;) . NewStr2, %MyFile%
				Sleep, 50
			}
		}
		Sleep 100
	    nxtIs := PageInst.Evaluate(&quot;document.getElementsByClassName(&#039;next&#039;)[0].children[0].className;&quot;).Value
	    if (nxtIs &lt;&gt; &quot;disabled&quot;)
	    {
	    	Sleep 100
			nxt := PageInst.Evaluate(&quot;document.getElementsByClassName(&#039;next&#039;)[0].children[0].href;&quot;).Value
			Sleep 100
			PageInst.Call(&quot;Page.navigate&quot;, {&quot;url&quot;: nxt})
			Sleep 100
			Try
				PageInst.WaitForLoad()
			Catch, e
			{
				A:=e.Message
				Sleep 5000
			}
		}
		Fl = 0
		if (nxtIs = &quot;disabled&quot;)
    	{
    		ToolTip A
    		Sleep 3000
    		Try
    			PageInst.Call(&quot;Target.closeTarget&quot;, {targetId: id}, &quot;False&quot;)
    		Catch, e
    		{
    			A := e.Message
    			MsgBox, %A%
    			Return
    		}
    		;A
			Sleep 3000
    		ToolTip, B
			;Try
			;	PageInst.Disconnect()
    		Sleep 1000
    		;ToolTip, C
			if (Gogogo = 0)
			{
				SoundPlay, da/finish.wav, Wait
				Reload
				Return
			}
			;ToolTip, D
			Gosub, ^F1
			Return
    	}
		If (Gogogo = 0)
		{
			Sleep 100
			Menu, Tray, Icon, da/da_faviconFav.ico
			Sleep 500
			Gogogo = 1

			SoundPlay, da/finish.wav, Wait
			Reload
			Return
		}
	}
	

Return
}

</code></pre></div><p>PS Gogogo общая переменная, там дальше еще есть ^f2 которая делает его =0.<br />PPS сейчас смотрю, и явственно вижу, что код стоило бы хорошенько так почистить от следов предыдущих версий <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> Чем я завтра и займусь.<br />PPPS я уже слегка модифицировал chrome.ahk, в моей версии:<br /></p><div class="codebox"><pre><code>Call(DomainAndMethod, Params:=&quot;&quot;, WaitForResponse:=True)
		{
			if !this.Connected
				throw Exception(&quot;Not connected to tab&quot;)
			
			; Use a temporary variable for ID in case more calls are made
			; before we receive a response.
			ID := this.ID += 1
			
			; Wait for the response
			this.responses[ID] := False
			
			this.ws.Send(Chrome.Jxon_Dump({&quot;id&quot;: ID
			, &quot;params&quot;: Params ? Params : {}
			, &quot;method&quot;: DomainAndMethod}))
			
			if !WaitForResponse
				return

			FlipFlapper := 0
			while !this.responses[ID]
			{
				FlipFlapper += 1
				Sleep, 50
				If (FlipFlapper &gt; 400)
				{
					throw Exception(&quot;CaptainResponses&quot;)
					return
				}
			}
			
			; Get the response, check if it&#039;s an error
			response := this.responses.Delete(ID)
			if (response.error)
				throw Exception(&quot;Chrome indicated error in response&quot;,, Chrome.Jxon_Dump(response.error))
			
			return response.result
		}
		
		/*
			Run some JavaScript on the page. For example:
			
			PageInst.Evaluate(&quot;alert(&quot;&quot;I can&#039;t believe it&#039;s not IE!&quot;&quot;);&quot;)
			PageInst.Evaluate(&quot;document.getElementsByTagName(&#039;button&#039;)[0].click();&quot;)
		*/
		Evaluate(JS)
		{
			Try
				response := this.Call(&quot;Runtime.evaluate&quot;,
				( LTrim Join
				{
					&quot;expression&quot;: JS,
					&quot;objectGroup&quot;: &quot;console&quot;,
					&quot;includeCommandLineAPI&quot;: Chrome.Jxon_True(),
					&quot;silent&quot;: Chrome.Jxon_False(),
					&quot;returnByValue&quot;: Chrome.Jxon_False(),
					&quot;userGesture&quot;: Chrome.Jxon_True(),
					&quot;awaitPromise&quot;: Chrome.Jxon_False()
				}
				))
			Catch e
			{
				throw Exception(e.Message)
				Return
			}
			
			if (response.exceptionDetails)
				throw Exception(response.result.description,, Chrome.Jxon_Dump(response.exceptionDetails))
			
			return response.result
		}
		
		/*
			Waits for the page&#039;s readyState to match the DesiredState.
			
			DesiredState - The state to wait for the page&#039;s ReadyState to match
			Interval     - How often it should check whether the state matches
		*/
		WaitForLoad(DesiredState:=&quot;complete&quot;, Interval:=100)
		{
			FlipFlapper := 0
			while this.Evaluate(&quot;document.readyState&quot;).value != DesiredState
			{
				FlipFlapper += 1
				Sleep, Interval
				If (FlipFlapper &gt; 400)
				{
					throw Exception(&quot;CaptainWaitForLoad&quot;)
					return
				}
			}
		}</code></pre></div></div></div><p>PS Ниже прилепил архив с нужными файлами. Источником работы являются любые папки Favourites с девиантарта: </p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>чтобы без рекламы - рандом с главной страницы: <a href="https://www.deviantart.com/nelwynnphoenix/favourites/60021661/wlop">https://www.deviantart.com/nelwynnphoen … 21661/wlop</a><br /><a href="https://www.deviantart.com/lizard2002/favourites/73513725/Wlop-and-Guweiz-Devious-Collections">https://www.deviantart.com/lizard2002/f … ollections</a><br /><a href="https://www.deviantart.com/illusion-e/favourites/77516178/Wlop-s-Kingdom">https://www.deviantart.com/illusion-e/f … -s-Kingdom</a> но не факт, что именно на них проявится, т.к. я потом <em>возвращаю только что закрытую вкладку, прожимаю кнопку и все срабатывает</em>...</p></div></div><br /><p>Upd: Сильно переделал скрипт, как писал выше, пока вроде работает без нареканий.</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2018-12-03T23:08:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130204#p130204</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130203#p130203" />
			<content type="html"><![CDATA[<p>Можете скинуть рабочий пример, где происходит подобное? А ж интересно стало, где прокол.</p>]]></content>
			<author>
				<name><![CDATA[MandarinKa02]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34409</uri>
			</author>
			<updated>2018-12-03T22:43:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130203#p130203</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130202#p130202" />
			<content type="html"><![CDATA[<p>Upd: Опять сижу любуюсь на А...<br />PS Придумал другую штуку: взять адреса из &quot;Chrome.GetPageList()&quot;, загнать их в array и потом for A, B from array прокрутить в новой вкладке (одной, не закрывая ее). Потом позакрывать все. Пойду попробую реализовать.</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2018-12-03T21:23:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130202#p130202</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130201#p130201" />
			<content type="html"><![CDATA[<p>Попробуйте.<br />Из плюсов у него есть одно преимущество - встроенная обработка JSON.<br />Из-за этого получение исходной&nbsp; страницы в разы быстрее.<br />Из минусов - придется выдумывать велосипед для некоторых операций, которые апи селениума не поддерживает.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2018-12-03T21:11:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130201#p130201</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130200#p130200" />
			<content type="html"><![CDATA[<p><strong>MandarinKa02</strong><br />1) Ранее, столкнувшись с подобной проблемой я слегка модифицировал код (тогда помогло):<br /></p><div class="codebox"><pre><code>FlipFlapper := 0
			while !this.responses[ID]
			{
				FlipFlapper += 1
				Sleep, 50
				If (FlipFlapper &gt; 400)
				{
					throw Exception(&quot;CaptainResponses&quot;)
					return
				}
			}</code></pre></div><p>В том месте у меня трай стоит, и его кэтч пишет в файлик датувремя сработки и перезапускает работу. Регулярно в файлике обнаруживаю новые датувремя.<br />2) PageInst.Call(&quot;Target.closeTarget&quot;, {targetId: id}, &quot;False&quot;) сделал. PPS сделал. Вроде пока работает (правда точно не ясно, т.к. бывали у него и раньше просветления, когда он много раз срабатывал без проблем).</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2018-12-03T21:02:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130200#p130200</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130199#p130199" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong><br />Через selenium не пробовал, т.к. сейчас его не стоит (да и переписывать код под селениум... я слишком мало в нем разобрался, почти сразу свалил на chrome.ahk).</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2018-12-03T20:44:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130199#p130199</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130198#p130198" />
			<content type="html"><![CDATA[<p><strong>Gh0sTG0</strong>, а через selenium тоже зависает?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2018-12-03T20:37:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130198#p130198</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130197#p130197" />
			<content type="html"><![CDATA[<p>Вот, вызываемая вами функция. Как вариант, установите влаг WaitForResponse в значение False и будет вам счастье.<br /></p><div class="codebox"><pre><code>
Call(DomainAndMethod, Params:=&quot;&quot;, WaitForResponse:=True)
{
	if !this.Connected
		throw Exception(&quot;Not connected to tab&quot;)
	
	; Use a temporary variable for ID in case more calls are made
	; before we receive a response.
	ID := this.ID += 1
	this.ws.Send(Chrome.Jxon_Dump({&quot;id&quot;: ID
	, &quot;params&quot;: Params ? Params : {}
	, &quot;method&quot;: DomainAndMethod}))
	
	if !WaitForResponse
		return
	
	; Wait for the response
	this.responses[ID] := False
	while !this.responses[ID]
		Sleep, 50
	
	; Get the response, check if it&#039;s an error
	response := this.responses.Delete(ID)
	if (response.error)
		throw Exception(&quot;Chrome indicated error in response&quot;,, Chrome.Jxon_Dump(response.error))
	
	return response.result
}	
</code></pre></div><p>P.S. отдельно замечание по поводу этой ф-ии.<br />Алгоритм здесь таков:<br />- отправляем действие N браузеру<br />- устанавливаем действию N значение FALSE (this.responses[ID] := False).<br />Есть предположение, что после послания действия браузеру, он(браузер) сразу же выдает ответ.<br />И как итог, алгоритм выглядит следующим образом:<br />- послал действие<br />- браузер ответил<br />- установил значение действию FALSE (то бишь, не выполнено)<br />На выходе получаем бесконечный цикл: <span style="color: gray"> (спасибо хоть задержку поставили, так-то бы и комп бухнул)</span><br /></p><div class="codebox"><pre><code>; Wait for the response
	while !this.responses[ID]
		Sleep, 50</code></pre></div><p><span style="color: gray">P.P.S. Только догадки.</span></p><p>Попробуйте такой вариант: <br />- установил значение действию FALSE (то бишь, не выполнено)<br />- послал действие<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>Call(DomainAndMethod, Params:=&quot;&quot;, WaitForResponse:=True)
{
	if !this.Connected
		throw Exception(&quot;Not connected to tab&quot;)
	
	; Use a temporary variable for ID in case more calls are made
	; before we receive a response.
	ID := this.ID += 1
	this.responses[ID] := False
	this.ws.Send(Chrome.Jxon_Dump({&quot;id&quot;: ID
	, &quot;params&quot;: Params ? Params : {}
	, &quot;method&quot;: DomainAndMethod}))
	
	if !WaitForResponse
		return
	
	; Wait for the response
	while !this.responses[ID]
		Sleep, 50
	
	; Get the response, check if it&#039;s an error
	response := this.responses.Delete(ID)
	if (response.error)
		throw Exception(&quot;Chrome indicated error in response&quot;,, Chrome.Jxon_Dump(response.error))
	
	return response.result
}</code></pre></div></div></div>]]></content>
			<author>
				<name><![CDATA[MandarinKa02]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34409</uri>
			</author>
			<updated>2018-12-03T20:33:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130197#p130197</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: chrome.ahk внезапно зависает при выполнении команд.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=130196#p130196" />
			<content type="html"><![CDATA[<p>Добрый вечер.<br />Использую библиотеку chrome.ahk.<br />Регулярно сталкиваюсь с тем, что выполняемая команда зависает и не возвращает ответ.<br />К примеру сейчас столкнулся с тем, что этим занимается команда Target.closeTarget.<br />Я разместил tooltip&#039;ы в разных местах, так что если команда зависает, то предыдущий tooltip отображается, следующий уже нет, программа встала.<br /></p><div class="codebox"><pre><code>
ToolTip A
PageInst.Call(&quot;Target.closeTarget&quot;, {targetId: id}) ;И я вижу, что вкладка закрылась, т.е. команда прошла и сработала.
ToolTip, B ;И я все еще вижу под курсором мыши букву A. И через 10 минут будет висеть буква А, а программа не будет работать дальше.
</code></pre></div><p>Случается эта неприятность далеко не каждый раз, возможны десятки применений команды без всяких проблем... или десяток зависаний подряд.<br />Сталкивался ли кто то с подобной проблемой? Удалось ли ее решить/выявить почему оно так?</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2018-12-03T19:13:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=130196#p130196</id>
		</entry>
</feed>
