<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16368&amp;type=atom" />
	<updated>2021-05-19T19:50:24Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=16368</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=148010#p148010" />
			<content type="html"><![CDATA[<p><strong>__Михаил__</strong>, большое вам спасибо. Все работает прекраснейшим образом.</p>]]></content>
			<author>
				<name><![CDATA[deadskiy sad]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41455</uri>
			</author>
			<updated>2021-05-19T19:50:24Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=148010#p148010</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=148001#p148001" />
			<content type="html"><![CDATA[<p>Полностью через DllCall:</p><div class="codebox"><pre><code>;[Irbis] 12.07.2014	http://forum.script-coding.com/viewtopic.php?pid=84720#p84720
MouseMoving(X, Y, S := 1000){	; Переместить курсор в позицию X, Y. S - чем меньше - тем быстрее.
 DX := 0, DY := 0, DX0 := 0, DY0 := 0
 Loop % S
  DllCall(&quot;mouse_event&quot;,UInt,1,Int, DX0:=Round(DX:=DX+X/S-DX0),Int, DY0:=Round(DY:=DY+Y/S-DY0),UInt,0,Int,0) 
}

;https://github.com/jNizM/AHK_DllCall_WinAPI/blob/master/src/Cursor%20Functions/GetCursorPos.ahk
GetCursorPos(ByRef X, ByRef Y){
 static POINT, init := VarSetCapacity(POINT, 8, 0) &amp;&amp; NumPut(8, POINT, &quot;Int&quot;)
 if !(DllCall(&quot;user32.dll\GetCursorPos&quot;, &quot;Ptr&quot;, &amp;POINT))
  Return DllCall(&quot;kernel32.dll\GetLastError&quot;)
 X := NumGet(POINT, 0, &quot;Int&quot;), Y := NumGet(POINT, 4, &quot;Int&quot;)
}


*~vk1::	; Возврат курсора обратно при удержании ЛКМ:
GetCursorPos(X,Y)
Loop 
{
 State:=DllCall(&quot;GetAsyncKeyState&quot;, &quot;Int&quot;, 1, &quot;UShort&quot;) ; 1 = 0x1 = VK_LButton
 If !State
   Break
 GetCursorPos(X2,Y2)
 MouseMoving(X-X2, Y-Y2, 10)
}
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-05-19T17:57:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=148001#p148001</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=147996#p147996" />
			<content type="html"><![CDATA[<p>Если задача переместить курсор обратно после отпуска, можно так:</p><div class="codebox"><pre><code>CoordMode, Mouse, Screen

MouseMoving(X, Y, S := 1000){
 DX := 0, DY := 0, DX0 := 0, DY0 := 0
 Loop % S
  DllCall(&quot;mouse_event&quot;,UInt,1,Int, DX0:=Round(DX:=DX+X/S-DX0),Int, DY0:=Round(DY:=DY+Y/S-DY0),UInt,0,Int,0) 
}

~vk1::
MouseGetPos, X, Y
KeyWait, vk1, U
MouseGetPos, X2, Y2
MouseMoving(X-X2, Y-Y2)
Return</code></pre></div><p>Скорость перемещения курсора можно менять через &#039;S&#039; параметр, чем меньше - тем быстрее перемещение.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-05-19T17:09:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=147996#p147996</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=147984#p147984" />
			<content type="html"><![CDATA[<p>Дело в том, что целью было перемещение курсора именно через DllCall, ибо игра в целом перемещения через MouseMove не воспринимает никак. <br />Ни на пиксель, ни на сто пикселей. Никак.<br />При любом смещении через MouseMove прицел опускается вниз и крутится. А вот с DllCall дела обстоят оптимально и адекватно. Похоже, для моей игры работает только DllCall. </p><p>Создал тему я для того, чтобы разобраться с вопросом, который я описал в первом посте.</p><p>MouseMove в принципе не работает в игре. DllCall воспринимается и работает должным образом. Хотя бы, чтобы работало на рабочем столе, только через DllCall.</p><p>Цель: перемещать при помощи DllCall, также, как и MouseMove из первого поста.</p><p>Прошу вашей помощи. Заранее спасибо за любую помощь.</p>]]></content>
			<author>
				<name><![CDATA[deadskiy sad]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41455</uri>
			</author>
			<updated>2021-05-19T06:19:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=147984#p147984</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=147981#p147981" />
			<content type="html"><![CDATA[<p>Обычно игры перехватывают курсор мыши так, что положение координат не относится к пикселям монитора напрямую, другими словами только игра знает куда будет смотреть камера персонажа при X=0 и на сколько она будет смещена при X=10.<br />Другое дело если высчитать эти смещения от 0 до 360 и делить на необходимое смещение в игре.<br />Это всё относиться к точному позиционированию, если оно необходимо.<br />При этом в полноэкранном режиме игра может полностью перехватить управление и ничего уже не поделать простым способом.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-05-18T19:24:20Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=147981#p147981</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=147979#p147979" />
			<content type="html"><![CDATA[<p>Как переместить курсор через DllCall я знаю. Меня конкретно интересует как задать постоянное перемещение в центр экрана через DllCall, кроме тех способов, которые пробовал я. Они не сработали. <br />Я искал такое на форумах. Но конкретно это не нашел. Может кто-то более опытный подскажет или оставит ссылку на то, как конкретно такое можно сделать.</p>]]></content>
			<author>
				<name><![CDATA[deadskiy sad]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41455</uri>
			</author>
			<updated>2021-05-18T18:43:59Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=147979#p147979</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=147977#p147977" />
			<content type="html"><![CDATA[<p>Теперь открою страшную тайну: существует поиск по сайту, в том числе и на <a href="https://autohotkey.com/">https://autohotkey.com/</a>.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-05-18T18:16:24Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=147977#p147977</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=147975#p147975" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong>, Сделано.</p>]]></content>
			<author>
				<name><![CDATA[deadskiy sad]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41455</uri>
			</author>
			<updated>2021-05-18T18:10:24Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=147975#p147975</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=147974#p147974" />
			<content type="html"><![CDATA[<p><strong>deadskiy sad</strong>, исправьте заголовок темы.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-05-18T18:07:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=147974#p147974</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=147972#p147972" />
			<content type="html"><![CDATA[<p>Всем привет. Не получается заменить перемещение курсора с MouseMove на DllCall.<br />Конкретный код с MouseMove:<br /></p><div class="codebox"><pre><code>~*LButton:: 
MouseGetPos, X, Y
While, GetKeyState(&quot;LButton&quot;, &quot;P&quot;) {
MouseMove, X, Y, 0
}
Return</code></pre></div><p>На рабочем столе работает, в игре - нет. <br />Вообще говоря, MouseMove в некоторых играх не перемещает курсор адекватным образом, а вот через DllCall, в целом, работает хорошо.<br />Идея в том, чтобы заменить функцию перемещения с MouseMove на DllCall. <br />Я пробовал это так:<br /></p><div class="codebox"><pre><code>MouseMoving() {
 DllCall(&quot;mouse_event&quot;, &quot;UInt&quot;, 0x01, &quot;UInt&quot;, X, &quot;UInt&quot;, Y)
}</code></pre></div><p>Или так:<br /></p><div class="codebox"><pre><code>MouseMoving() {
 DllCall(&quot;mouse_event&quot;, &quot;UInt&quot;, 0x01, &quot;UInt&quot;, (A_ScreenWight / 2), &quot;UInt&quot;, (A_ScreenHeight / 2))
}</code></pre></div><p>К сожалению, ничего не сработало. Помогите пожалуйста.</p>]]></content>
			<author>
				<name><![CDATA[deadskiy sad]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41455</uri>
			</author>
			<updated>2021-05-18T18:01:43Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=147972#p147972</id>
		</entry>
</feed>
