<?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=15632&amp;type=atom" />
	<updated>2020-09-06T07:37:39Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=15632</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=142000#p142000" />
			<content type="html"><![CDATA[<p>Я что-то совсем растерялся.&nbsp; LLMOuse тут вообще не при чём. <br />Вне зависимости от использования LLMOuse, отсылка клавиш даже в блокнот идёт с задержкой, особенно большой после первого нажатия. Даже вот в таком виде:<br /></p><div class="codebox"><pre><code>#SingleInstance,Force
#InstallKeybdHook
SetBatchLines -1
SetKeyDelay,-1
;SendMode,

F2::
Send,B
Return</code></pre></div><p> Ничего не смог изменить используя<br />SetBatchLines -1<br />SetKeyDelay,-1<br />#InstallKeybdHook<br /> и разные варианты <br />Send<br />и<br />SendMode.<br />&nbsp; Что за напасть такая?</p>]]></content>
			<author>
				<name><![CDATA[Foma]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31521</uri>
			</author>
			<updated>2020-09-06T07:37:39Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=142000#p142000</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141988#p141988" />
			<content type="html"><![CDATA[<p>Нельзя сказать не зная проблемы.<br />У меня приведенный вами код перемещает курсор мгновенно, сколько раз ни нажимай.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2020-09-04T16:00:33Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141988#p141988</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141977#p141977" />
			<content type="html"><![CDATA[<p>Ну, если Вы считаете применение специально разработанной библиотеки&nbsp; &quot;стандартным способом&quot;, то эмуляция мне скорее всего не по зубам.<br />А она точно нужна? Всё ведь срабатывает, только чуток медленно, особенно второе срабатывание.<br />Допустим в блокноте при стандартном вводе тоже так работает, если зажать клавишу - пауза пере вторым, а дальше быстро.<br />Для скрипта это же должно как-то убираться?<br /></p><div class="codebox"><pre><code>SetKeyDelay,-1</code></pre></div><p>никак не влияет почему-то. Что в игре, что без.</p>]]></content>
			<author>
				<name><![CDATA[Foma]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31521</uri>
			</author>
			<updated>2020-09-03T19:56:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141977#p141977</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141976#p141976" />
			<content type="html"><![CDATA[<p>Даже не знаю повторять последнее предложение или не стоит...</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2020-09-03T19:31:21Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141976#p141976</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141973#p141973" />
			<content type="html"><![CDATA[<p>Ну, вот попробовал с LLMouse, странно и медленно работает. Почему - не понятно.</p>]]></content>
			<author>
				<name><![CDATA[Foma]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31521</uri>
			</author>
			<updated>2020-09-03T16:09:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141973#p141973</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141972#p141972" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Foma пишет:</cite><blockquote><p>2 раза не срабатывает одно и тоже перемещение, даже если курсор был после этого смещён мышкой.</p></blockquote></div><p>Такого тоже нет.</p><p>Если вы про игры, то вам нужна эмуляция, стандартные способы которыми вы пытаетесь выше не катят.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2020-09-03T15:39:17Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141972#p141972</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141971#p141971" />
			<content type="html"><![CDATA[<p>У меня проблем нет и не слышал прежде. Вероятно особенность вашей системы, антивирус м.б.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2020-09-03T15:34:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141971#p141971</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141966#p141966" />
			<content type="html"><![CDATA[<p>Самым интересным показался вариант с библиотекой LLMOuse <a href="https://www.autohotkey.com/boards/viewtopic.php?t=26137">https://www.autohotkey.com/boards/viewtopic.php?t=26137</a></p><p>Но почему-то очень медленно движет курсор. Особенно велика пауза между первым и вторым срабатыванием. Не понимаю почему так. Может кто-то пояснит?</p><div class="codebox"><pre><code>; =========== Sample script ============================================================
#SingleInstance,Force
SetBatchLines -1
SetKeyDelay,-1


F12::
Random,iks,-20,-30
Random,igr,-10,-20
LLMouse.Move(iks, igr, 1, 1)
return




; =======================================================================================
; LLMouse - A library to send Low Level Mouse input

; Note that many functions have time and rate parameters.
; These all work the same way:
; times	- How many times to send the requested action. Optional, default is 1
; rate	- The rate (in ms) to send the action at. Optional, default rate varies
; Note that if you use a value for rate of less than 10, special code will kick in.
; QPX is used for rates of &lt;10ms as the AHK Sleep command does not support sleeps this short
; More CPU will be used in this mode.
class LLMouse {
	static MOUSEEVENTF_MOVE := 0x1
	static MOUSEEVENTF_WHEEL := 0x800
	
	; ======================= Functions for the user to call ============================
	; Move the mouse
	; All values are Signed Integers (Whole numbers, Positive or Negative)
	; x		- How much to move in the x axis. + is right, - is left
	; y		- How much to move in the y axis. + is down, - is up
	Move(x, y, times := 1, rate := 1){
		this._MouseEvent(times, rate, this.MOUSEEVENTF_MOVE, x, y)
	}
	
	; Move the wheel
	; dir	- Which direction to move the wheel. 1 is up, -1 is down
	Wheel(dir, times := 1, rate := 10){
		static WHEEL_DELTA := 120
		this._MouseEvent(times, rate, this.MOUSEEVENTF_WHEEL, , , dir * WHEEL_DELTA)
	}
	
	; ============ Internal functions not intended to be called by end-users ============
	_MouseEvent(times, rate, dwFlags := 0, dx := 0, dy := 0, dwData := 0){
		Loop % times {
			DllCall(&quot;mouse_event&quot;, uint, dwFlags, int, dx ,int, dy, uint, dwData, int, 0)
			if (A_Index != times){	; Do not delay after last send, or if rate is 0
				if (rate &gt;= 10){
					Sleep % rate
				} else {
					this._Delay(rate * 0.001)
				}
			}
		}
	}
	
	_Delay( D=0.001 ) { ; High Resolution Delay ( High CPU Usage ) by SKAN | CD: 13/Jun/2009
		Static F ; www.autohotkey.com/forum/viewtopic.php?t=52083 | LM: 13/Jun/2009
		Critical
		F ? F : DllCall( &quot;QueryPerformanceFrequency&quot;, Int64P,F )
		DllCall( &quot;QueryPerformanceCounter&quot;, Int64P,pTick ), cTick := pTick
		While( ( (Tick:=(pTick-cTick)/F)) &lt;D ) {
			DllCall( &quot;QueryPerformanceCounter&quot;, Int64P,pTick )
			Sleep -1
		}
		Return Round( Tick,3 )
	}
}
</code></pre></div><p> И разницы между паузами в 1мс и 99мс я не заметил. Очевидно как-то влияет скорость повторного срабатывания самой клавиши?</p>]]></content>
			<author>
				<name><![CDATA[Foma]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31521</uri>
			</author>
			<updated>2020-09-03T10:26:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141966#p141966</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141942#p141942" />
			<content type="html"><![CDATA[<p>__Михаил__, вот самый простой вариант:<br /></p><div class="codebox"><pre><code>#SingleInstance Force
#NoEnv
ListLines Off
SetBatchLines -1
CoordMode,Pixel,Screen
CoordMode,Mouse,Screen
CoordMode,ToolTip,Screen

!Numpad6::
MouseMove,925,555
Return</code></pre></div><p>Раньше думал что показалось, но снова увидел применив этот код, который укоротил для форума.<br />Один раз срабатывает ровно как надо - курсор сдвигается, точнее сама картинка. Дальше просто дёргается и возвращается назад. Как я понимаю игра после первого раза определяет, что сигнал не от мыши и вот таким образом блокирует работу скрипта.</p><p>stealzy, спасибо, почитал. Там правда ничего не говорится о том варианте, когда только один раз срабатывает, но я постараюсь хоть что-то понять в тех библиотеках, которые применяться в п.4 для камуфлирования работы скрипта.</p><p>Оказалось ещё интереснее. 2 раза не срабатывает одно и тоже перемещение, даже если курсор был после этого смещён мышкой. Если вписать в скрипт ещё один MouseMove на другой хоткей, то при нажатии поочерёдно они срабатывают как и должны. <br />Попробую копнуть дальше: удастся ли создать два MouseMove, которые по очереди будут двигать курсор по очереди куда нужно на одном хоткее.</p>]]></content>
			<author>
				<name><![CDATA[Foma]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31521</uri>
			</author>
			<updated>2020-08-31T11:20:07Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141942#p141942</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141936#p141936" />
			<content type="html"><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?pid=123063#p123063">http://forum.script-coding.com/viewtopi … 63#p123063</a></p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2020-08-30T17:00:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141936#p141936</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141935#p141935" />
			<content type="html"><![CDATA[<p><strong>Foma</strong></p><p>Приведите свой код, может в нём ошибки есть.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-08-30T13:35:27Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141935#p141935</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Перемещение курсора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=141927#p141927" />
			<content type="html"><![CDATA[<p>Пытаюсь в полноэкранной игре от первого лица осуществить некоторые действия по перемещению курсора(прицела), который обычно находится ровно в центре экрана. <br />Пробовал использовать <br /><em>MouseMove</em> <br />и<br /><em>DllCall(&quot;SetCursorPos&quot;...</em>,</p><p>игрался с настройками </p><p><em>SendMode</em>,<br /><em>SetDefaultMouseSpeed</em>,<br /><em>SetMouseDelay</em></p><p> и скоростью перемещения в самом <em>MouseMove</em>.<br />&nbsp; В результате наблюдал всего два эффекта<br />1. Курсор вообще не двигается.<br />2. Курсор отклоняется в нужную сторону и тут же возвращается назад. То есть&nbsp; курсор немного движется и вся картинка движется ему навстречу, а потом как и положено, курсор возвращается в центр, а картинка, как ни странно - в прежнее положение, ничуть не сдвинувшись.</p><p> Прошу помочь. Возможно есть у кого-то какие-то соображения, как можно добиться нормального движения курсора, подразумевающего нужное смещение всей картинки и наведение курсора на нужное место в ней?</p>]]></content>
			<author>
				<name><![CDATA[Foma]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31521</uri>
			</author>
			<updated>2020-08-29T06:04:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=141927#p141927</id>
		</entry>
</feed>
