<?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=5089&amp;type=atom" />
	<updated>2010-12-05T20:50:10Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=5089</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=42535#p42535" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>А для чего нужна &quot;иммитация ручного перемещения курсора мыши&quot;?</p></blockquote></div><p>Могу предположить, что сия задача нужна на пример в некоторых онлайн играх, где работает настройка сервера на удаление за бездействие игроков и освобождения слотов для желающих зайти. При использовании этого скрипта и не желании покидать данный сервер, можно спокойно отлучиться на неопределённое время. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Grey]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25792</uri>
			</author>
			<updated>2010-12-05T20:50:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=42535#p42535</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=42350#p42350" />
			<content type="html"><![CDATA[<p>&quot;Эмуляция человека&quot; <img src="//forum.script-coding.com/img/smilies/roll.png" width="15" height="15" /> <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2010-11-30T17:42:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=42350#p42350</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=42348#p42348" />
			<content type="html"><![CDATA[<p>Мне понадобилась. Возможно ещё кому то понадобится, или послужит подсказкой для своих разработок. Ну а если вам не интересна данная тематика, это уже зависит от вашего кругозора:)ъ</p><p>Я ведь тут никого ни к чему не принуждаю, просто поделился своей маленькой разработочкой...</p>]]></content>
			<author>
				<name><![CDATA[Alexx]]></name>
			</author>
			<updated>2010-11-30T16:42:44Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=42348#p42348</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=42347#p42347" />
			<content type="html"><![CDATA[<p>А для чего нужна &quot;иммитация ручного перемещения курсора мыши&quot;?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2010-11-30T16:36:45Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=42347#p42347</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=42346#p42346" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Только не совсем понятно, зачем это нужно?</p></blockquote></div><p>Ну как вариант, иммитация ручного перемещения курсора мыши, не прокатит?;))<br />Кстати, и тему можно так назвать...</p>]]></content>
			<author>
				<name><![CDATA[Alexx]]></name>
			</author>
			<updated>2010-11-30T16:34:30Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=42346#p42346</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=42343#p42343" />
			<content type="html"><![CDATA[<p>Только не совсем понятно, зачем это нужно?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2010-11-30T15:30:09Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=42343#p42343</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=42342#p42342" />
			<content type="html"><![CDATA[<p>Забыл добавить, дествие данного скрипта очень хорошо видно&nbsp; в стандартном &quot;paint&quot;...стоит только зажать правую кнопку мыши и нажать хоткей))</p>]]></content>
			<author>
				<name><![CDATA[Alexx]]></name>
			</author>
			<updated>2010-11-30T14:26:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=42342#p42342</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=42341#p42341" />
			<content type="html"><![CDATA[<p>Данный скрипт передвигает курсор мыши по случайной траектории из текущего положения в заданные координаты со случайным смещением(указываются параметры смещения) по горячей клавише.<br />Вот весь продукт моих соображений по данному вопросу).<br />По крайней мере меня он устроил полностью, выкладываю как сделал).<br />Думаю стоит отметить то, что данный код отправляет курсор мыши в назначенные координаты, но останавливается она со случайным смещением(в коде указано где и как)).<br /></p><div class="codebox"><pre><code>Process, Priority,,High                 ;выделяем максимальны приоритет процессу(может и не нужно, хз)).
SetMouseDelay, 10                     ;устанавливаем время задержки на один шаг мыши. число ставится от -1 до 100.
                                                ;(тут стоит указать, если ставим число задержки -1, то мышь передвигается в 
                                                ;точку назначения мгновенно, и преломлений случайной траектории нет. Чем больше 
                                                ;данное число, тем больше реализм приломления траектории движения мыши, но тем 
                                                ;самым медленнее её скорость перемещения).
SetDefaultMouseSpeed, 0            ;указываем скорость мыши(менять не нужно, просто замедлит её движение, если это необходимо).
CoordMode, Mouse, Screen

return




q::
Critical                                        ;cпридаем приоритет процессу.
loop                                            ;начинаем луп.
{
xf := 553-5                                     ;координата назначения по х.
yf := 580+34                                    ;координата назначения по y.
xd := xf+5                                      ;граница координаты назначения по х.
yd := yf+15                                     ;граница координаты назначения по y.
MouseGetPos, x, y                               ;берем текущее положение курсора.
if (y&gt;=yf) and (y&lt;=yd) and (x&gt;=xf) and (x&lt;=xd)  ;при выполнении условия, если текущее положение курсора попадает в квадрат с .крайними координатами xf-yf и xd-yd? тогда выполняется действие.
{
random,rsmd, 90, 110                            ;определение случайного времени задержки перед нажатием правой кнопкой мыши от 90 до 110 .миллисекунд
SetMouseDelay, rsmd                             ;включаем случайно выбранное время задержки.
random, r1,1,5                                  ;определяем число случайного отклонения от точки назначения в пикселях от 1 до 5 по оси х.
random, r2,1,1                                  ;определяем число случайного отклонения от точки назначения в пикселях от 1 до 1 по оси y.
MouseMove, xf+r1, yf+r2                         ;остановка мыши в указанной области с учетом случайных отклонений по х и у.
Break                                           ;сброс выполнения процесса.
}
else                                            ;если первое условие не выполняется, то смотрим условие:
if (y&lt;yf)                                       ;если текущее положение мыши меньше положения, куда отправляем курсор, то выполняем:
{
random,rand, -0.1, 7.5                          ;выбор случайного числа от -0.1 до 7.5.
random,rand1, -0.1, 7.5                         ;выбор случайного числа от -0.1 до 7.5.
var := ((yf-y)-rand)                            ;вычисляем длинну отрезка по х между текущим положением курсора и направляемым  
                                                          ;со случайным смещением.
var1 := ((yf-y)-rand1)                          ;снова вычисляем длинну отрезка по х между текущим положением курсора и направляемым с 
                                                           ; другим случайным смещением.
koef :=((xf - x+1) / (yf - y+1))                ;вычисляем коэффициент смещения.
y1 := (yf -var)                                 ;координата назначения курсора по у.
x1 := (xf-(var1 * koef))                        ;координата назначения по х.
MouseMove, x1, y1                               ;двигаем мышь от текущего положения к расчитанному.
}
else                                            ;иначе
{
random,rand, -0.1, 7.5                          ;выбор случайного числа от -0.1 до 7.5.
random,rand1, -0.1, 7.5                         ;выбор случайного числа от -0.1 до 7.5.
var := ((y-yf)-rand)                            ;вычисляем длинну отрезка по х между текущим положением курсора и направляемым со случайным 
                                                          ;смещением.
var1 := ((y-yf)-rand1)                          ;снова вычисляем длинну отрезка по х между текущим положением курсора и направляемым с
                                                          ; другим случайным смещением.
koef :=((x - xf+1) / (y - yf+1))                ;вычисляем коэффициент смещения.
y1 := (yf +var)                                 ;координата назначения курсора по у.
x1 := (xf+(var1 * koef))                        ;координата назначения по х.
MouseMove, x1, y1                               ;двигаем мышь от текущего положения к расчитанному.
}
}
return</code></pre></div><p>Возможно кому то поможет, всегда готов обсудить данный материал и буду благодарен за отзывы и критику:)</p>]]></content>
			<author>
				<name><![CDATA[Alexx]]></name>
			</author>
			<updated>2010-11-30T14:13:33Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=42341#p42341</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=40890#p40890" />
			<content type="html"><![CDATA[<p>Я же не знаю, в чем состоит конечная цель. Если такой способ подходит, то почему бы и нет.</p>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2010-10-27T03:44:07Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=40890#p40890</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=40885#p40885" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>InFlames пишет:</cite><blockquote><p>...необходимо сначала математически описать объект...</p></blockquote></div><p>Ну раз уж дело дошло до..., может тогда проще записать траектории реальных движений мышью (сами возим, сами пишем), а затем этот массивчик воспроизводить с отклонениями по координатам/времени, по вкусу?</p>]]></content>
			<author>
				<name><![CDATA[jite]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25851</uri>
			</author>
			<updated>2010-10-26T20:51:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=40885#p40885</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=40880#p40880" />
			<content type="html"><![CDATA[<p>Тут где-то на форуме видел GUI с падающим мячом. Там траектория является затухающим колебанием. <br />Думаю, что бы решить поставленную задачу, необходимо сначала математически описать объект (в данном случае траекторию движения), а затем уже пытаться реализовывать это на Ahk.</p>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2010-10-26T16:48:45Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=40880#p40880</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=40862#p40862" />
			<content type="html"><![CDATA[<p>Ну, ошибка на поверхности. Нужно так:<br /></p><div class="codebox"><pre><code>x2 := x + Rand</code></pre></div><p>И дальше аналогично.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2010-10-26T12:22:17Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=40862#p40862</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=40860#p40860" />
			<content type="html"><![CDATA[<p>уж очень мало опыта у меня в работе с АНК, по вышеописанному методу состряпал вот такой скрипт, но он не работает, курсор вылетает к левому верхнему краю активного окна, посоветуйте, что я делаю не так?<br />вот код:<br /></p><div class="codebox"><pre><code>q::
MouseGetPos,X,Y 
xc=800
yc=600
Random, Rand, 0,10
if x&lt;xc
{
x2=x+Rand
}

if x&gt;xc
{
x2=x-Rand
}

if y&lt;yc
{
y2=y+Rand
}

if y&gt;yc
{
y2=x-Rand
}

MouseMove, x2, y2

Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Alexx]]></name>
			</author>
			<updated>2010-10-26T12:01:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=40860#p40860</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=40852#p40852" />
			<content type="html"><![CDATA[<p>Ну да, как-то так. Дерзайте. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2010-10-26T10:20:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=40852#p40852</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Иммитация ручного перемещения курсора мыши]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=40850#p40850" />
			<content type="html"><![CDATA[<p>Каким образом посоветуете это реализовать, если координаты начальной позиции курсора всегда разные, а постоянные только конечные?<br />Хотя начальные координаты и можно взять командой MouseGetPos, но как тогда автоматизировать расчет координат промежуточных точек преломления траектории движения курсора? допустим курсор в данный момент времени имеет координаты x=320 y=900, по горячей клавише курсор отправляется в точку с координатами x=800 y=600, командой MouseClick курсор следует по прямой, как можно задать промежуточные пункты преломлений траектории движения исходя из начальных и конечных координат?<br />Пока писал, появилась мысль что можно для начала сравнить начальные и конечные координаты x и y, и при условии, если начальная координата x больше той, куда мы отправляем курсор, то начинает работатьпроцедура отнимания от начальной x случайные числа&nbsp; например от 1 до 4 до тех пор, пока не получим число равное координате куда посылаем курсор.а если начальная координата меньше конечной, то наоборот, прибавляем случайные числа пока не получим конечную координату. Аналогично поступаем с координатой y. В итоге после каждой математической операции мы получаем уникальные координаты в единицу времени. Осталось воплотить всё это в код)</p>]]></content>
			<author>
				<name><![CDATA[Alexx]]></name>
			</author>
			<updated>2010-10-26T09:52:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=40850#p40850</id>
		</entry>
</feed>
