<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: отдельный CapsLock для каждого окна]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6125</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6125&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: отдельный CapsLock для каждого окна».]]></description>
		<lastBuildDate>Tue, 16 Aug 2011 15:45:55 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50693#p50693</link>
			<description><![CDATA[<p>Во общем оба варианта имеют право на существование, пусть каждый сам кто захочет использовать, для себя решит, что больше по вкусу.</p>]]></description>
			<author><![CDATA[null@example.com (surefire)]]></author>
			<pubDate>Tue, 16 Aug 2011 15:45:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50693#p50693</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50692#p50692</link>
			<description><![CDATA[<p>Выглядит как целая куча костылей. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Со Sleep гораздо проще и понятнее. Да и короче.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Tue, 16 Aug 2011 15:22:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50692#p50692</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50691#p50691</link>
			<description><![CDATA[<p>Хочется именно без костылей, я уже решил. Точнее нашел решение на английском форуме ))) Сейчас исправлю скрипт.</p>]]></description>
			<author><![CDATA[null@example.com (surefire)]]></author>
			<pubDate>Tue, 16 Aug 2011 15:09:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50691#p50691</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50690#p50690</link>
			<description><![CDATA[<p>Если нежелательность &quot;зацикливания цикла&quot; в том, что он сильно грузит процессор, то можно в этом случае вставлять небольшую паузу.<br /></p><div class="codebox"><pre><code>caps := {}

Loop
{
   WinGet, active_id, ID, A
   If active_id
   {
      SetCapsLockState, % caps[active_id] ? &quot;On&quot; : &quot;Off&quot; 

      WinWaitNotActive, ahk_id %active_id% 

      caps[active_id]:=  GetKeyState(&quot;CapsLock&quot;, &quot;T&quot;)
   }
   Else
      Sleep, 300
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Tue, 16 Aug 2011 15:01:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50690#p50690</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50689#p50689</link>
			<description><![CDATA[<p>Я имею ввиду именно индикатор CaspLock, он у меня переключает раскладку, без всяких посторонних программ. Вся хитрость в программе Microsoft Keyboard Layout Creator, чуть подробней написано <a href="http://zipta.ru/2010/10/smena-yazyka-po-caps-lock-v-windows-7/">здесь</a>, я пошел чуть дальше, но это пока не важно, меня интересовал именно настоящий CapsLock. Сделал скрипт, все хорошо, проблема осталась только при блокировке экрана, а её приходится делать довольно часто.</p>]]></description>
			<author><![CDATA[null@example.com (surefire)]]></author>
			<pubDate>Tue, 16 Aug 2011 14:23:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50689#p50689</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50688#p50688</link>
			<description><![CDATA[<p>Что-то не пойму. Если под раскладкой разумеется язык ввода, то он и так у каждого окна свой. На какой переключили окно, тот в нём и будет, независимо от других окон.</p><p>Или вы индикатор CapsLock имеете в виду?</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Tue, 16 Aug 2011 13:55:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50688#p50688</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50687#p50687</link>
			<description><![CDATA[<p>как оказалось во время блокировки <em>WinGet, active_id, ID, A</em>&nbsp; выдает пустоту вмеcто id, а WinWaitNotActive, ahk_id %active_id%&nbsp; в этом случае ничего не ждет и цикл зацикливается, элегантного решения еще не придумал.</p>]]></description>
			<author><![CDATA[null@example.com (surefire)]]></author>
			<pubDate>Tue, 16 Aug 2011 13:26:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50687#p50687</guid>
		</item>
		<item>
			<title><![CDATA[AHK: отдельный CapsLock для каждого окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=50683#p50683</link>
			<description><![CDATA[<p>Началось с того, что я сделал переключение раскладки по CapsLock, а самого CapsLock по Ctrl+Shift. Но сделал это стандартными средствами винды при помощи Microsoft Keyboard Layout Creator. Таким образом осталась проблема переключения раскладки (в данном случае CapsLock) на каждое приложение, а не целиком в системе. Предлагаю скрипт для AutoHotkey_L:&nbsp; </p><br /><div class="codebox"><pre><code>Gui +LastFound
DllCall( &quot;RegisterShellHookWindow&quot;, UInt,WinExist() )                        ; Ставим системный хук
MsgNum := DllCall( &quot;RegisterWindowMessage&quot;, Str,&quot;SHELLHOOK&quot; )     
OnMessage( MsgNum, &quot;WaitSwitchWindow&quot; )                                      ; Подписываемся на сообщения системы
LastActiveWindowID := WinActive(&quot;A&quot;)                                           ; Сохраняем идентификатор активного окна
caps := {}                                                                                 ; Инициализируем массив

Return ;                                          // End of Auto-Execute Section //

WaitSwitchWindow( wParam, lParam )  {
  Global LastActiveWindowID, caps
  If ( wParam = 4 And WinExist( &quot;ahk_id &quot; lParam )  ) { ; HSHELL_WINDOWACTIVATED = 4       ; Фильтруем системные сообщения 
       caps[LastActiveWindowID] :=  GetKeyState(&quot;CapsLock&quot;, &quot;T&quot;)        ; Сохраняем состояние CapsLock для бывшего активного окна
 
       LastActiveWindowID := lParam                               ; Сохраняем идентификатор нового активного окна
       SetCapsLockState, % caps[LastActiveWindowID] ? &quot;On&quot; : &quot;Off&quot;   ; Устанавливаем состояние CapsLock для нового активного окна 
  }
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (surefire)]]></author>
			<pubDate>Tue, 16 Aug 2011 09:24:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=50683#p50683</guid>
		</item>
	</channel>
</rss>
