<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: отдельный CapsLock для каждого окна]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6125&amp;type=atom" />
	<updated>2011-08-16T15:45:55Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6125</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50693#p50693" />
			<content type="html"><![CDATA[<p>Во общем оба варианта имеют право на существование, пусть каждый сам кто захочет использовать, для себя решит, что больше по вкусу.</p>]]></content>
			<author>
				<name><![CDATA[surefire]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27143</uri>
			</author>
			<updated>2011-08-16T15:45:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50693#p50693</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50692#p50692" />
			<content type="html"><![CDATA[<p>Выглядит как целая куча костылей. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Со Sleep гораздо проще и понятнее. Да и короче.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2011-08-16T15:22:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50692#p50692</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50691#p50691" />
			<content type="html"><![CDATA[<p>Хочется именно без костылей, я уже решил. Точнее нашел решение на английском форуме ))) Сейчас исправлю скрипт.</p>]]></content>
			<author>
				<name><![CDATA[surefire]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27143</uri>
			</author>
			<updated>2011-08-16T15:09:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50691#p50691</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50690#p50690" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2011-08-16T15:01:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50690#p50690</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50689#p50689" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[surefire]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27143</uri>
			</author>
			<updated>2011-08-16T14:23:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50689#p50689</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50688#p50688" />
			<content type="html"><![CDATA[<p>Что-то не пойму. Если под раскладкой разумеется язык ввода, то он и так у каждого окна свой. На какой переключили окно, тот в нём и будет, независимо от других окон.</p><p>Или вы индикатор CapsLock имеете в виду?</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2011-08-16T13:55:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50688#p50688</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отдельный CapsLock для каждого окна]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50687#p50687" />
			<content type="html"><![CDATA[<p>как оказалось во время блокировки <em>WinGet, active_id, ID, A</em>&nbsp; выдает пустоту вмеcто id, а WinWaitNotActive, ahk_id %active_id%&nbsp; в этом случае ничего не ждет и цикл зацикливается, элегантного решения еще не придумал.</p>]]></content>
			<author>
				<name><![CDATA[surefire]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27143</uri>
			</author>
			<updated>2011-08-16T13:26:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50687#p50687</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: отдельный CapsLock для каждого окна]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50683#p50683" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[surefire]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27143</uri>
			</author>
			<updated>2011-08-16T09:24:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50683#p50683</id>
		</entry>
</feed>
