<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=16368</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16368&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove».]]></description>
		<lastBuildDate>Wed, 19 May 2021 19:50:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=148010#p148010</link>
			<description><![CDATA[<p><strong>__Михаил__</strong>, большое вам спасибо. Все работает прекраснейшим образом.</p>]]></description>
			<author><![CDATA[null@example.com (deadskiy sad)]]></author>
			<pubDate>Wed, 19 May 2021 19:50:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=148010#p148010</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=148001#p148001</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Wed, 19 May 2021 17:57:06 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=148001#p148001</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147996#p147996</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Wed, 19 May 2021 17:09:34 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147996#p147996</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147984#p147984</link>
			<description><![CDATA[<p>Дело в том, что целью было перемещение курсора именно через DllCall, ибо игра в целом перемещения через MouseMove не воспринимает никак. <br />Ни на пиксель, ни на сто пикселей. Никак.<br />При любом смещении через MouseMove прицел опускается вниз и крутится. А вот с DllCall дела обстоят оптимально и адекватно. Похоже, для моей игры работает только DllCall. </p><p>Создал тему я для того, чтобы разобраться с вопросом, который я описал в первом посте.</p><p>MouseMove в принципе не работает в игре. DllCall воспринимается и работает должным образом. Хотя бы, чтобы работало на рабочем столе, только через DllCall.</p><p>Цель: перемещать при помощи DllCall, также, как и MouseMove из первого поста.</p><p>Прошу вашей помощи. Заранее спасибо за любую помощь.</p>]]></description>
			<author><![CDATA[null@example.com (deadskiy sad)]]></author>
			<pubDate>Wed, 19 May 2021 06:19:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147984#p147984</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147981#p147981</link>
			<description><![CDATA[<p>Обычно игры перехватывают курсор мыши так, что положение координат не относится к пикселям монитора напрямую, другими словами только игра знает куда будет смотреть камера персонажа при X=0 и на сколько она будет смещена при X=10.<br />Другое дело если высчитать эти смещения от 0 до 360 и делить на необходимое смещение в игре.<br />Это всё относиться к точному позиционированию, если оно необходимо.<br />При этом в полноэкранном режиме игра может полностью перехватить управление и ничего уже не поделать простым способом.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Tue, 18 May 2021 19:24:20 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147981#p147981</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147979#p147979</link>
			<description><![CDATA[<p>Как переместить курсор через DllCall я знаю. Меня конкретно интересует как задать постоянное перемещение в центр экрана через DllCall, кроме тех способов, которые пробовал я. Они не сработали. <br />Я искал такое на форумах. Но конкретно это не нашел. Может кто-то более опытный подскажет или оставит ссылку на то, как конкретно такое можно сделать.</p>]]></description>
			<author><![CDATA[null@example.com (deadskiy sad)]]></author>
			<pubDate>Tue, 18 May 2021 18:43:59 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147979#p147979</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147977#p147977</link>
			<description><![CDATA[<p>Теперь открою страшную тайну: существует поиск по сайту, в том числе и на <a href="https://autohotkey.com/">https://autohotkey.com/</a>.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 18 May 2021 18:16:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147977#p147977</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147975#p147975</link>
			<description><![CDATA[<p><strong>teadrinker</strong>, Сделано.</p>]]></description>
			<author><![CDATA[null@example.com (deadskiy sad)]]></author>
			<pubDate>Tue, 18 May 2021 18:10:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147975#p147975</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147974#p147974</link>
			<description><![CDATA[<p><strong>deadskiy sad</strong>, исправьте заголовок темы.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 18 May 2021 18:07:37 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147974#p147974</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Переместить курсор с помощью DllCall, с координатами от MouseMove]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147972#p147972</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (deadskiy sad)]]></author>
			<pubDate>Tue, 18 May 2021 18:01:43 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147972#p147972</guid>
		</item>
	</channel>
</rss>
