<?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="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7839&amp;type=atom" />
	<updated>2012-12-03T06:11:45Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7839</id>
		<entry>
			<title type="html"><![CDATA[AHK: Активация окна наведением курсора без вывода на передний план]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=66428#p66428" />
			<content type="html"><![CDATA[<p>По следам <a href="http://forum.script-coding.com/viewtopic.php?pid=63835#p63835">этой</a> темы. Недавно обнаружил, как можно включать и выключать &quot;active window tracking&quot; без перезагрузки. В принципе, я предпочитаю пользоваться этой возможностью постоянно, но встречаются приложения, работать с которыми не очень удобно, когда она включена (окна подсказок забирают фокус), и всегда хотелось иметь возможность отключать её ненадолго. Однако, иного способа, кроме как правка реестра и последующая перезагрузка (или logout + login, как верно <a href="http://forum.script-coding.com/viewtopic.php?pid=63854#p63854">подсказал</a> <strong>creature.ws</strong>, а вот <a href="http://forum.script-coding.com/viewtopic.php?pid=63857#p63857">версия</a> <strong>Irbis</strong>&#039;а не сработала) известно мне не было. Но теперь всё изменилось! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Следующая функция работает, как переключатель:<br /></p><div class="codebox"><pre><code>F11::
   ToolTip % &quot;ActiveWindowTracking &quot; . (ActiveWindowTracking_Toggle() ? &quot;В&quot; : &quot;ОТ&quot;) . &quot;ключен!&quot;
   Sleep, 1000
   ToolTip
   return

ActiveWindowTracking_Toggle(ActiveWndTrkZorder=0, ActiveWndTrkTimeout=0)
{
;  ActiveWndTrkZorder — выводить ли активируемое мышью окно на передний план
;  ActiveWndTrkTimeout — таймаут при активации мышью в милисекундах

   SPI_GETACTIVEWINDOWTRACKING := 0x1000
   SPI_SETACTIVEWINDOWTRACKING := 0x1001
   SPI_GETACTIVEWNDTRKZORDER := 0x100C 
   SPI_SETACTIVEWNDTRKZORDER := 0x100D
   SPI_GETACTIVEWNDTRKTIMEOUT := 0x2002
   SPI_SETACTIVEWNDTRKTIMEOUT := 0x2003
   SPIF_UPDATEINIFILE := 0x1
      
   if b := CheckAndAction(SPI_GETACTIVEWINDOWTRACKING, SPI_SETACTIVEWINDOWTRACKING, SPIF_UPDATEINIFILE)
   {
      CheckAndAction(SPI_GETACTIVEWNDTRKZORDER , SPI_SETACTIVEWNDTRKZORDER , SPIF_UPDATEINIFILE, ActiveWndTrkZorder)
      CheckAndAction(SPI_GETACTIVEWNDTRKTIMEOUT, SPI_SETACTIVEWNDTRKTIMEOUT, SPIF_UPDATEINIFILE, ActiveWndTrkTimeout)
   }
   Return !b
}

CheckAndAction(uiGET, uiSET, fWinIni, arg=&quot;&quot;)
{
   VarSetCapacity(buffer, 4)
   DllCall(&quot;SystemParametersInfo&quot;, UInt, uiGET, UInt, 0, Ptr, &amp;buffer, UInt, 0)
   if ((b := NumGet(buffer, &quot;UInt&quot;)) != arg)
      DllCall(&quot;SystemParametersInfo&quot;, UInt, uiSET, UInt, 0, Ptr, arg = &quot;&quot; ? !b : arg, UInt, fWinIni)
   Return b
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-12-03T06:11:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=66428#p66428</id>
		</entry>
</feed>
