<?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=12281&amp;type=atom" />
	<updated>2017-09-25T10:55:58Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12281</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119570#p119570" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong> Нет, не возвращается пустым. Проверил много раз. Ищу картинку - кликнул по ней. Перетащил эту же картинку в другое место - нашел, но кликнул по координатам, где картинка находилась при первом поиске.</p>]]></content>
			<author>
				<name><![CDATA[Vicoriyan]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38658</uri>
			</author>
			<updated>2017-09-25T10:55:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119570#p119570</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119568#p119568" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>a := &quot;test&quot;
msgbox % a
a := &quot;&quot;
msgbox % a</code></pre></div><p>Но переменная List при повтороном вызове и ненахождении совпадений должна возвращаться пустая и без этого.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-09-25T10:49:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119568#p119568</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119567#p119567" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong> Если числовая переменная, то просто ставлю := 0. Если текстовая - понятия не имею. В грубой форме - просто перезапуск скрипта. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> В этом варианте не прокатит поставить нули. Скрипт воспримет нули как координаты.</p>]]></content>
			<author>
				<name><![CDATA[Vicoriyan]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38658</uri>
			</author>
			<updated>2017-09-25T10:46:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119567#p119567</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119563#p119563" />
			<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-09-25T10:26:32Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119563#p119563</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119544#p119544" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong> Вопрос, как очистить список LIST? Когда запускаю скрипт он ждет нажатия 1. Нажимаю, скрипт выполняется и снова становится в режим ожидая для нажатия 1 и выполнения. Но дело в том, что при повторном выполнении скрипта, он запоминает координаты картинки, которая была найдена изначально и кликает по этим координатам, хотя картинки там уже нет.</p>]]></content>
			<author>
				<name><![CDATA[Vicoriyan]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38658</uri>
			</author>
			<updated>2017-09-24T11:10:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119544#p119544</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119543#p119543" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong> Все работает. Теперь зона поиска 65.215.210,400. Вариация 20. Перебор заканчивается при нахождении картинки.</p><div class="codebox"><pre><code>1::
lock := [&quot;unlocked&quot;, &quot;unlocked2&quot;, &quot;locked&quot;, &quot;locked2&quot;]
gdipToken := Gdip_Startup()
bmpHaystack := Gdip_BitmapFromScreen(&quot;0|0|275|615&quot;)
loop % lock.Length()
{
   bmpNeedle := Gdip_CreateBitmapFromFile(A_ScriptDir &quot;\v&quot; A_ThisHotkey lock[A_Index]&quot;.png&quot;)
   RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST,65,215,0,0,20,0xFFFFFF,1,0)
   Gdip_DisposeImage(bmpNeedle)
   CoordMode, Mouse, Screen
   Loop, Parse, LIST, `n
   {
      StringSplit, Coord, A_LoopField, `,
      MouseClick, , %Coord1%, %Coord2%, 1 , 0.5
        break 2
   }
}
Gdip_DisposeImage(bmpHaystack)
Gdip_Shutdown(gdipToken)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Vicoriyan]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38658</uri>
			</author>
			<updated>2017-09-24T11:04:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119543#p119543</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119542#p119542" />
			<content type="html"><![CDATA[<p>Gdip_ImageSearch ищет картинку.<br />У вас картинка обрезанная, поэтому и координаты будут относительно обрезанного экрана.<br />Берите Gdip_BitmapFromScreen относительно всего экрана, а в Gdip_ImageSearch укажите координаты поиска:<br /></p><div class="quotebox"><blockquote><p>; OuterX1, OuterY1, OuterX2, OuterY2<br />;&nbsp; &nbsp;Equivalent to ImageSearch&#039;s X1,Y1,X2,Y2<br />;&nbsp; &nbsp;Default: 0 for all (which searches the whole haystack area)</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-09-24T10:44:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119542#p119542</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119541#p119541" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong> То есть Gdip_ImageSearch не умеет сканировать с заданной точки, а только с 0 и по определенное значение?</p>]]></content>
			<author>
				<name><![CDATA[Vicoriyan]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38658</uri>
			</author>
			<updated>2017-09-24T10:32:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119541#p119541</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119540#p119540" />
			<content type="html"><![CDATA[<p>Gdip_BitmapFromScreen(&quot;65|215|390|390&quot;) - у найденных координат идет смещение на 65 пикселей по x и 215 по y, относительно экрана.<br />MouseMove, X+65, Y+215.<br />Либо делайте снимок всего экрана, а поиск осуществляйте в заданных координатах.<br />Без понятия почему она у вас сходит с ума, может из-за указанной прозрачности.<br />Тестируйте.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-09-24T10:19:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119540#p119540</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119539#p119539" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong> Хм, ставлю bmpHaystack := Gdip_BitmapFromScreen(&quot;0|0|210|400&quot;) - все работает. Картинку находит и кликает на левый верхний угол картинки. Ставлю bmpHaystack := Gdip_BitmapFromScreen(&quot;65|215|390|390&quot;) - идет непонятное смещение. А как тогда прописать, чтоб сканировало не с нулевого верхнего угла, а с точки X-65 Y-215 ? По вариации Вы выделили жирный ноль и я понял, что это там нужно указывать значение вариации? Ставлю RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST,0,0,0,0,50,0xFFFFFF,1,0) и мышка сходит с ума.</p>]]></content>
			<author>
				<name><![CDATA[Vicoriyan]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38658</uri>
			</author>
			<updated>2017-09-24T10:04:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119539#p119539</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119538#p119538" />
			<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-09-24T09:36:50Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119538#p119538</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119537#p119537" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong> Про break и вариацию буду разбираться. Спасибо Вам за подсказку. Что касательно клика по картинке. То, что клик происходит относительно левого верхнего угла картинки это я знаю, но дело в том, что клик происходит далеко не по картинке. Картинка например размером 10х10, а клик происходит на 50-70 пикселей вверх по оси Y и на 10-15 пикселей по оси Х. Четко сказать цифру смещения пока не могу, но если нужно, я узнаю.</p>]]></content>
			<author>
				<name><![CDATA[Vicoriyan]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38658</uri>
			</author>
			<updated>2017-09-24T09:29:43Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119537#p119537</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119536#p119536" />
			<content type="html"><![CDATA[<p>Если у вас картинка на которой вы ищите совпадения берется из файла, то список координат совпадений, которые вы получаете, будет относительно левого верхнего угла картинки. <br />Чтобы прекратить поиск картинок впишите в цикл перебирания координат break 2.<br />За вариацию отвечает:<br />RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST,0,0,0,0,<strong>0</strong>,0xFFFFFF,1,0)<br /></p><div class="quotebox"><blockquote><p>; This function searches for pBitmapNeedle within pBitmapHaystack<br />; The returned value is the number of instances found (negative = error)<br />;<br />; ++ PARAMETERS ++<br />;<br />; pBitmapHaystack and pBitmapNeedle<br />;&nbsp; &nbsp;Self-explanatory bitmap pointers, are the only required parameters<br />;<br />; OutputList<br />;&nbsp; &nbsp;ByRef variable to store the list of coordinates where a match was found<br />;<br />; OuterX1, OuterY1, OuterX2, OuterY2<br />;&nbsp; &nbsp;Equivalent to ImageSearch&#039;s X1,Y1,X2,Y2<br />;&nbsp; &nbsp;Default: 0 for all (which searches the whole haystack area)<br />;<br />; Variation<br />;&nbsp; &nbsp;Just like ImageSearch, a value from 0 to 255<br />;&nbsp; &nbsp;Default: 0<br />;<br />; Trans<br />;&nbsp; &nbsp;Needle RGB transparent color, should be a numerical value from 0 to 0xFFFFFF<br />;&nbsp; &nbsp;Default: blank (does not use transparency)<br />;<br />; SearchDirection<br />;&nbsp; &nbsp;Haystack search direction<br />;&nbsp; &nbsp; &nbsp;Vertical preference:<br />;&nbsp; &nbsp; &nbsp; &nbsp;1 = top-&gt;left-&gt;right-&gt;bottom [default]<br />;&nbsp; &nbsp; &nbsp; &nbsp;2 = bottom-&gt;left-&gt;right-&gt;top<br />;&nbsp; &nbsp; &nbsp; &nbsp;3 = bottom-&gt;right-&gt;left-&gt;top<br />;&nbsp; &nbsp; &nbsp; &nbsp;4 = top-&gt;right-&gt;left-&gt;bottom<br />;&nbsp; &nbsp; &nbsp;Horizontal preference:<br />;&nbsp; &nbsp; &nbsp; &nbsp;5 = left-&gt;top-&gt;bottom-&gt;right<br />;&nbsp; &nbsp; &nbsp; &nbsp;6 = left-&gt;bottom-&gt;top-&gt;right<br />;&nbsp; &nbsp; &nbsp; &nbsp;7 = right-&gt;bottom-&gt;top-&gt;left<br />;&nbsp; &nbsp; &nbsp; &nbsp;8 = right-&gt;top-&gt;bottom-&gt;left<br />;<br />; Instances<br />;&nbsp; &nbsp;Maximum number of instances to find when searching (0 = find all)<br />;&nbsp; &nbsp;Default: 1 (stops after one match is found)<br />;<br />; LineDelim and CoordDelim<br />;&nbsp; &nbsp;Outer and inner delimiters for the list of coordinates (OutputList)<br />;&nbsp; &nbsp;Defaults: &quot;`n&quot; and &quot;,&quot;<br />;<br />; ++ RETURN VALUES ++<br />;<br />; -1001 ==&gt; invalid haystack and/or needle bitmap pointer<br />; -1002 ==&gt; invalid variation value<br />; -1003 ==&gt; X1 and Y1 cannot be negative<br />; -1004 ==&gt; unable to lock haystack bitmap bits<br />; -1005 ==&gt; unable to lock needle bitmap bits<br />; any non-negative value ==&gt; the number of instances found</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-09-24T09:19:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119536#p119536</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119514#p119514" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong> Сделал, картинку находит, а кликать четко по картинке не хочет, но курсор всегда располагается относительно картинки. Как бы я картинку эту не сдвигал, курсор тоже движешься за картинкой относительно. Делая bmpHaystack := Gdip_BitmapFromScreen() - все работает. Где у меня может быть ошибки ? И еще вопрос, где нужно поставить break, чтоб после нахождения и клика скрипт не продолжал перебор картинок?<br /></p><div class="codebox"><pre><code>1::
lock := [&quot;unlocked&quot;, &quot;unlocked2&quot;, &quot;locked&quot;, &quot;locked2&quot;]
gdipToken := Gdip_Startup()
bmpHaystack := Gdip_BitmapFromScreen(&quot;65|215|210|400&quot;)
loop % lock.Length()
{
   bmpNeedle := Gdip_CreateBitmapFromFile(A_ScriptDir &quot;\v&quot; A_ThisHotkey lock[A_Index]&quot;.png&quot;)
   RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST)
   Gdip_DisposeImage(bmpNeedle)
   CoordMode, Mouse, Screen
   Loop, Parse, LIST, `n
   {
      StringSplit, Coord, A_LoopField, `,
      MouseClick, , %Coord1%, %Coord2%, 1 , 0.5
   }
}
Gdip_DisposeImage(bmpHaystack)
Gdip_Shutdown(gdipToken)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Vicoriyan]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38658</uri>
			</author>
			<updated>2017-09-23T07:51:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119514#p119514</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Совершить клик по существующим изображениям]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119507#p119507" />
			<content type="html"><![CDATA[<p>Какой параметр отвечает за&nbsp; вариацию написано в описании функции.<br />Чтобы искать несколько картинок нужно сделать типа такого цикла, заменив пути и вставив массив:<br /></p><div class="codebox"><pre><code>gdipToken := Gdip_Startup()
bmpHaystack := Gdip_BitmapFromScreen()
loop
{
   bmpNeedle := Gdip_CreateBitmapFromFile(&quot;test.png&quot;)
   RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST)
   Gdip_DisposeImage(bmpNeedle)
   CoordMode, Mouse, Screen
   Loop, Parse, LIST, `n
   {
      StringSplit, Coord, A_LoopField, `,
      MouseMove, %Coord1%, %Coord2%, 0
   }
}
Gdip_DisposeImage(bmpHaystack)
Gdip_Shutdown(gdipToken)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-09-22T23:39:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119507#p119507</id>
		</entry>
</feed>
