<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Инверсия мыши по вертикали]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=5826</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=5826&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Инверсия мыши по вертикали».]]></description>
		<lastBuildDate>Mon, 23 May 2011 03:49:39 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Инверсия мыши по вертикали]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48618#p48618</link>
			<description><![CDATA[<p>Увы... Во втором скрипте, при использовании его в системе, при движении по оси Х вправо происходит остановка.<br />В 3D приложениях работает не корректно. (большая скорость перемещения, перемещения по осям X Y рывками)</p>]]></description>
			<author><![CDATA[null@example.com (predator)]]></author>
			<pubDate>Mon, 23 May 2011 03:49:39 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48618#p48618</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Инверсия мыши по вертикали]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48607#p48607</link>
			<description><![CDATA[<p>Можно ещё так попробовать:<br /></p><div class="codebox"><pre><code>   SetBatchLines, -1
   SetMouseDelay, -1
   CoordMode, Mouse
   OnExit, Exit

   hHook := DllCall(&quot;SetWindowsHookEx&quot;
      , Int, WH_MOUSE_LL := 14
      , Int, RegisterCallback(&quot;LowLevelMouseProc&quot;, &quot;Fast&quot;)
      , UInt, DllCall(&quot;GetModuleHandle&quot;, UInt, 0)
      , UInt, 0)
   Return

Exit:
   DllCall(&quot;UnhookWindowsHookEx&quot;, UInt, hHook)
   ExitApp

Esc:: ExitApp

LowLevelMouseProc(nCode, wParam, lParam)
{
   static y_prev

   if (nCode &lt; 0 || wParam != 0x200)   ; WM_MOUSEMOVE = 0x200
      Return DllCall(&quot;CallNextHookEx&quot;, UInt, 0, Int, nCode, UInt, wParam, UInt, lParam)

   x := NumGet(lParam+0), y := NumGet(lParam+0, 4)

   y_prev := y_prev = &quot;&quot; ? y : y_prev

   t := 2*y_prev - y
   MouseMoving(x, y_prev := t &lt; 4 ? 4 : t &gt; A_ScreenHeight ? A_ScreenHeight : t)
   Return 1
}

MouseMoving(x, y)
{
   static MOUSEEVENTF_ABSOLUTE = 0x8000, MOUSEEVENTF_MOVE = 0x1

   DllCall(&quot;mouse_event&quot;
    , UInt, MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE
    , Int, Ceil(x*0xFFFF/A_ScreenWidth)
    , Int, Ceil(y*0xFFFF/A_ScreenHeight)
    , UInt, 0)
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 22 May 2011 17:21:01 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48607#p48607</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Инверсия мыши по вертикали]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48606#p48606</link>
			<description><![CDATA[<p>В самом меню игры также все работает.<br />Вероятно, что решения данного вопроса не существует в силу то, что движок игры не воспринимает скрипт.</p>]]></description>
			<author><![CDATA[null@example.com (predator)]]></author>
			<pubDate>Sun, 22 May 2011 17:13:37 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48606#p48606</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Инверсия мыши по вертикали]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48605#p48605</link>
			<description><![CDATA[<p>В самой игре: скрипт работает, но скорость выполнения сильно завышена. При движении по оси Y вверх и вниз - движок игры реагирует рывками, как при завышенной раекции мыши. Снижение на минимальные значения в игре и в системе приемлимого результата не принесло.</p><p>В системе (windows 7 x64) все работает на 5 баллов.</p>]]></description>
			<author><![CDATA[null@example.com (predator)]]></author>
			<pubDate>Sun, 22 May 2011 17:01:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48605#p48605</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Инверсия мыши по вертикали]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48604#p48604</link>
			<description><![CDATA[<p>Вот так, но не факт, что в играх будет работать:<br /></p><div class="codebox"><pre><code>   SetBatchLines, -1
   SetMouseDelay, -1
   CoordMode, Mouse
   OnExit, Exit
   hHookMouse := DllCall(&quot;SetWindowsHookEx&quot; . (A_IsUnicode ? &quot;W&quot; : &quot;A&quot;)
      , Int, WH_MOUSE_LL := 14
      , Ptr, RegisterCallback(&quot;LowLevelMouseProc&quot;, &quot;Fast&quot;)
      , Ptr, DllCall(&quot;GetModuleHandle&quot;, UInt, 0, Ptr)
      , UInt, 0, Ptr)
   Return

Exit:
   DllCall(&quot;UnhookWindowsHookEx&quot;, Ptr, hHookMouse)
   ExitApp
   
Esc:: ExitApp

LowLevelMouseProc(nCode, wParam, lParam)
{
   static y_prev

   if (nCode &lt; 0 || wParam != 0x200)   ; WM_MOUSEMOVE = 0x200
      Return DllCall(&quot;CallNextHookEx&quot;, Ptr, 0, Int, nCode, UInt, wParam, UInt, lParam)

   x := NumGet(lParam+0, &quot;UInt&quot;), y := NumGet(lParam+0, 4, &quot;UInt&quot;)
   
   y_prev := y_prev = &quot;&quot; ? y : y_prev
   
   if (y &gt; y_prev || y &lt; y_prev)
   {
      t := y_prev - (y - y_prev)*2
      MouseMove, x, y_prev := t &lt; 2 ? 2 : t &gt; A_ScreenHeight ? A_ScreenHeight : t, 0
   }
   Else
      MouseMove, x, y_prev := y, 0
   Return 1
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 22 May 2011 14:45:35 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48604#p48604</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Инверсия мыши по вертикали]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=48596#p48596</link>
			<description><![CDATA[<p>Инверсия оси Y реализована практически во всех играх на 3D движке. Но, в игре &quot;ВЕДЬМАК 2&quot; разработчиками не установлена эта функция. По привычке всегда использую инверсию в играх.<br />Вопрос: <br />Возможно ли с помощью скрипта выполнить инверсию мыши по оси Y?<br />(при движении мыши от себя курсор должен перемещатся вниз экрана и при движении к себе вверх)</p><p>Увы, на форуме я не нашел информации по данному вопросу.<br />Буду благодарен за помощь.</p>]]></description>
			<author><![CDATA[null@example.com (predator)]]></author>
			<pubDate>Sat, 21 May 2011 16:30:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=48596#p48596</guid>
		</item>
	</channel>
</rss>
