<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=18557&amp;type=atom" />
	<updated>2026-03-23T02:00:54Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=18557</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163275#p163275" />
			<content type="html"><![CDATA[<p>Дальнейшую дискуссию перенёс в <a href="https://forum.script-coding.com/viewtopic.php?id=18578">OFF: Продолжение AHK: Как отловить переключение раскладки клавиатуры</a></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2026-03-23T02:00:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163275#p163275</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163200#p163200" />
			<content type="html"><![CDATA[<p>Не уверен, что будет срабатывать со всеми uwp приложениями. По документации у них по другому опоаещается. Да и при переключении между окнами с разной раскладкой может не всегда отправлять.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2026-03-20T14:37:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163200#p163200</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163199#p163199" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><div class="quotebox"><cite>AlexPORT пишет:</cite><blockquote><p>Как это сделать без использования таймера, на событиях windows?</p></blockquote></div><p>Забейте и используйте поллинг (таймер).<br />Ничего более надежного всё-равно не изобретёте.</p></blockquote></div><p>Cистемное сообщение не надёжное?</p>]]></content>
			<author>
				<name><![CDATA[haridev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=45040</uri>
			</author>
			<updated>2026-03-20T12:12:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163199#p163199</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163198#p163198" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>3wedsmncjklvjvd73734 пишет:</cite><blockquote><p>&quot;Если бы молодость знала,<br />Если бы старость могла.&quot; (R)<br />Видать мне знаний не хватает, а вам сил.</p></blockquote></div><p>А почему вы решили, что мне чего-то не хватает? На этом форуме достаточно моего кода. А себя вы к кому причисляете, к тем, кто может, или к тем, кто знает? Пока впечатление, что ни к тем, ни к другим.<br /></p><div class="quotebox"><cite>3wedsmncjklvjvd73734 пишет:</cite><blockquote><p>Опять зеваю</p></blockquote></div><p>Здесь не это ценится.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2026-03-19T19:56:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163198#p163198</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163197#p163197" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Что поделать, мы &quot;молодёжь&quot; такие.</p><p><strong>&quot;Если бы молодость знала,<br />Если бы старость могла.&quot; (R)</strong></p><p>Видать мне знаний не хватает, а вам сил.<br />Желание было победить &quot;не убиваемую вин 10 с RAM диском&quot; + &quot;следилку за всем этим (VBS+.NET)&quot;. И я его победил. А с ЭТИМ (данная эта тема), мне не интересна (зеваю). На безопасность никак не влияет, да и ладно.<br />Опять зеваю.</p>]]></content>
			<author>
				<name><![CDATA[3wedsmncjklvjvd73734]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=44630</uri>
			</author>
			<updated>2026-03-19T19:53:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163197#p163197</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163196#p163196" />
			<content type="html"><![CDATA[<p>Так вы от любого предложения написать код зеваете.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2026-03-19T19:23:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163196#p163196</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163195#p163195" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Только не утверждайте, что вы в состоянии это сделать.</p></blockquote></div><p>Когда у котёнка не получается взять своей лапой чашку (копируя действия человека), он <strong>теряет к этому интерес</strong>.<br />Я уже зеваю, от упоминания ловли языковой панели.</p>]]></content>
			<author>
				<name><![CDATA[3wedsmncjklvjvd73734]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=44630</uri>
			</author>
			<updated>2026-03-19T18:45:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163195#p163195</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163194#p163194" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>3wedsmncjklvjvd73734 пишет:</cite><blockquote><p>запустить следилку по потреблению ресурса у ctfmon.exe</p></blockquote></div><p>Только не утверждайте, что вы в состоянии это сделать. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="quotebox"><cite>3wedsmncjklvjvd73734 пишет:</cite><blockquote><p>Мой пример отвязывает проверку по АПИ через таймер</p></blockquote></div><p>Ну, если такой ответ устроит автора, то не имею ничего против.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2026-03-19T16:12:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163194#p163194</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163193#p163193" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>AlexPORT пишет:</cite><blockquote><p>Как это сделать без использования таймера, на событиях windows?</p></blockquote></div><p>Забейте и используйте поллинг (таймер).<br />Ничего более надежного всё-равно не изобретёте.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2026-03-19T16:09:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163193#p163193</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163192#p163192" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Ну да. Автор упоминал. что сейчас всё и так пашет. но он бы хотел отвязаться от таймера. который запускает проверку языка через API.<br />Мой пример отвязывает проверку по АПИ через таймер. <br />И есть вариант <strong>Б</strong> <br />Я заметил что при смене языка, у <strong>ctfmon.exe</strong> происходит изменение в задействовании ресурса CPU. Т.е. запустить следилку по потреблению ресурса у <strong>ctfmon.exe</strong>. которая будет оповещать что произошло изменения именно языка, а не просто нажатия клавы/мыши.</p>]]></content>
			<author>
				<name><![CDATA[3wedsmncjklvjvd73734]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=44630</uri>
			</author>
			<updated>2026-03-19T13:41:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163192#p163192</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163191#p163191" />
			<content type="html"><![CDATA[<p>Нажатие клавиши в AHK отслеживается одной строкой кода, не нужно огород городить. Но, как я уже сказал выше, язык может смениться не только по нажатию клавиши. Кроме того, сейчас вы отвечаете не на тот вопрос. Вопрос был, как отследить событие смены языка, а не событие, которое может привести к смене языка.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2026-03-19T13:14:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163191#p163191</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163190#p163190" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Пока так.</p><p>пример <br />при нажатии на клаве, выпадает код символа<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>

&lt;head&gt;
&lt;title&gt;Test&lt;/title&gt;
&lt;HTA:APPLICATION ID=&quot;oHTA&quot;
  APPLICATIONNAME=&quot;Test&quot;
&gt;
&lt;/head&gt;

&lt;script language=&quot;VBScript&quot;&gt;
Sub CheckKey
msgbox window.event.keyCode
&#039;  If window.event.keyCode = 112 Then self.close()
self.close()
End Sub
&lt;/script&gt;

&lt;body onKeyUp=&quot;CheckKey&quot;&gt;
&lt;script language=&quot;VBScript&quot;&gt;
&#039;...
&lt;/script&gt;
&lt;/body&gt;

</code></pre></div><p>не видимый - варианты.</p><div class="codebox"><pre><code>
решение заключается в том, что вы можете развернуть HTA-приложение, которое может представлять собой пустую страницу с IFRAME, то есть

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Test&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;br/&gt;
&lt;iframe src=&quot;http://somewhere.org&quot; /&gt;
&lt;/body&gt;
&lt;/html&gt;

Таким образом, приложение HTA можно запускать повторно без необходимости повторной авторизации, поскольку оно уже установлено на компьютере. Однако содержимое HTA можно обновить, изменив удаленный документ, указанный в IFRAME.


==========вариант 2 ===================
&lt;SCRIPT LANGUAGE=&quot;VBScript&quot;&gt;
set a = CreateObject(&quot;WScript.Shell&quot;)
visible = false
a.run &quot;mshta.exe &quot;&quot;file:///evil.hta&quot;&quot;&quot;, visible
window.close()
&lt;/SCRIPT&gt;


</code></pre></div></div></div><p>Можно конечно внутри запустить запуск powershell с ps1 (или скомпилированный .NET), после нажатия клавы,&nbsp; в котором вызывается API с анализом языковой панели. <br />По крайней мере ЭТО API уже будет запускаться не по времени. И разгрузит CPU</p>]]></content>
			<author>
				<name><![CDATA[3wedsmncjklvjvd73734]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=44630</uri>
			</author>
			<updated>2026-03-19T12:28:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163190#p163190</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163189#p163189" />
			<content type="html"><![CDATA[<p>Идея с отслеживанием нажатий клавиатуры уже лучше. Но разве язык активного окна всегда может измениться только по нажатию клавиши?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2026-03-19T12:08:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163189#p163189</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163188#p163188" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />ВОТ--&gt;<br /><a href="https://forum.script-coding.com/viewtopic.php?id=1433">https://forum.script-coding.com/viewtopic.php?id=1433</a><br />HTA hide mode<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>window.resizeTo(0,0)
</code></pre></div><p>совместно с&nbsp; <br /></p><div class="codebox"><pre><code>WINDOWSTATE=&quot;normal&quot;
</code></pre></div><div class="codebox"><pre><code>
&lt;HTML&gt;
    &lt;HEAD&gt;
        &lt;HTA:APPLICATION ID=&quot;oHTA&quot;
        APPLICATIONNAME=&quot;myApp&quot;
        WINDOWSTATE=&quot;normal&quot;
        MAXIMIZEBUTTON=&quot;no&quot;
        MINIMIZEBUTTON=&quot;no&quot;
        CAPTION=&quot;no&quot;
        SHOWINTASKBAR=&quot;no&quot;
        &gt;
        &lt;script&gt;
            window.resizeTo(0,0);
            var myVar = setInterval(function(){ myTimer() }, 3000);
            function myTimer() {
                objShell=new ActiveXObject(&quot;WScript.Shell&quot;);
            objShell.Run (&#039;%windir%\\System32\\cmd.exe /c %temp%\\readme.txt&#039;, 0,true);window.close();
            }
        &lt;/script&gt;
    &lt;/HEAD&gt;
    &lt;BODY SCROLL=&quot;no&quot;&gt;
    &lt;/BODY&gt;
&lt;/HTML&gt;
</code></pre></div></div></div>]]></content>
			<author>
				<name><![CDATA[3wedsmncjklvjvd73734]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=44630</uri>
			</author>
			<updated>2026-03-19T10:38:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163188#p163188</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK v2: Как отловить переключение раскладки клавиатуры]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=163187#p163187" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />ЕЕЕЕЕЕЕСССССССС!!!<br /><em>Предисловие..<br /></em><br /><strong>&quot;Если бы молодость знала,<br />Если бы старость могла.&quot; (R)<br /></strong><br />Короче. <strong>МЫ</strong> можем сами для себя заделать ЛЮБУЮ эвентс вообще для всего что можно придумать юзеру.<br />И никакие там WMI которые нам подсовывает Микрософт нам не нужны. <br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>В данном нашем конкретном случае, нам нужен свой объект который будет сидеть в памяти и отслеживать клаву по своему внутреннему эвентсу<br />Такой объект например у меня (VBS) будет HTA. В этом HTML файле есть отлов процедуры нажатия клавы. Поцедура будет отслживать что там нажата было и передавать во внешний мир (например через &quot;проводник&quot;), или внутри себя в переменную.<br />Вот например у меня...<br /></p><div class="codebox"><pre><code>


    onchange Event: This event occurs when any change occurs in context to the element in the Script i.e. when the element changes, this event gets fired in the Script.
    onsubmit Event: This event occurs at the Script level when the form gets submitted in the application.
    onreset Event: This event occurs at the Script level when the form gets to the reset mode in the application.
    onfocus Event: This event occurs at the Script level when any of the elements gets a focus in the application.
    onblur Event: This event occurs at the Script level when the element loses its focus in the application.
    ondblclick Event: This event occurs at the Script level when the mouse gets double-clicked.
    onmousedown Event: This event occurs at the Script level when the mouse button gets pressed.
    onmouseup Event: This event occurs at the Script level when the mouse button gets released.
    onkeyup Event: This event occurs at the Script level when any of the keys that are present in the keyboard button gets released.
    onkeydown Event: This event occurs at the Script level when any of the keys that are present on the keyboard get pressed.
    onkeypress Event: This event occurs at the Script level when any of the keys that are present on the keyboard get pressed and released.
    onmousemove Event: This event occurs at the Script level when the pointer of the mouse moves.


событие onchange: Это событие происходит, когда в контексте элемента в скрипте происходит какое-либо изменение, т.е. когда элемент изменяется, это событие запускается в скрипте.
 Событие onsubmit: Это событие происходит на уровне скрипта, когда форма отправляется в приложение.
 событие onreset: Это событие происходит на уровне скрипта, когда форма переходит в режим сброса в приложении.
 Событие onfocus: Это событие происходит на уровне скрипта, когда какой-либо из элементов получает фокус в приложении.
 событие onblur: Это событие происходит на уровне скрипта, когда элемент теряет фокус в приложении.
 Событие ondblclick: Это событие происходит на уровне скрипта при двойном щелчке мыши.
 событие onmousedown: Это событие происходит на уровне скрипта при нажатии кнопки мыши.
 Событие onmouseup: Это событие происходит на уровне скрипта при отпускании кнопки мыши.
 событие onkeyup: Это событие происходит на уровне скрипта, когда любой из присутствующих ключей вводится
</code></pre></div><p>HTA</p><div class="codebox"><pre><code>Following is an example to show the working of this Event.

&lt;html&gt; 
&lt;head&gt;
&lt;title&gt;Let’s see the working of ‘On Click of Button’ Event&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script language=”vbscript” type=”text/vbscript”&gt;
Function displaymessage(name)
 Msgbox “Hello ” &amp; name 
End Function
Function displaymessage1(name)
 Msgbox “Hello ” &amp; name 
End Function
&lt;/script&gt;
&lt;input name =”txtmsg” type =”text” OnMouseOver= “displaymessage(riya)”&gt; &lt;br&gt;
&lt;input name =”txtmsg1” type =”text” OnMouseOut= “displaymessage1(siya)”&gt;
&lt;/body&gt; 
&lt;/html&gt;</code></pre></div></div></div>]]></content>
			<author>
				<name><![CDATA[3wedsmncjklvjvd73734]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=44630</uri>
			</author>
			<updated>2026-03-19T10:18:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=163187#p163187</id>
		</entry>
</feed>
