<?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=16807&amp;type=atom" />
	<updated>2021-12-10T16:10:21Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16807</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151115#p151115" />
			<content type="html"><![CDATA[<p>И как бы вы всё это стали делать? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Я не хочу сказать, что проверка ErrorLevel всегда бесполезна, но не в данном конкретном случае. На некотором уровне подготовки иногда нужно просто поверить.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-10T16:10:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151115#p151115</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151114#p151114" />
			<content type="html"><![CDATA[<p>Значит нужно проверить функционал, если не работает, искать, устранять ошибку. Либо вообще менять стратегию.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-10T16:02:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151114#p151114</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151110#p151110" />
			<content type="html"><![CDATA[<p>А что это даст, если выскочит сообщение <em>ErrorLevel: 1</em>?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-10T15:24:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151110#p151110</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151108#p151108" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>А как окно может не существовать, если мы только что дождались его активности? ErrorLevel здесь никогда не появится.</p></blockquote></div><p>Ну во первых в Windows возможно все;<br />2. &quot;a problem <strong>such as</strong> the target window or control not existing.&quot; - тут могли о чем то умолчать и в будущих версиях вариантов может быть больше;<br />3. я уже встречал ошибки в этой документации.</p><p>Поэтому лучше сделать так: </p><div class="codebox"><pre><code>	if ErrorLevel
		MsgBox ErrorLevel: %ErrorLevel%!
</code></pre></div><p>тогда любая ошибка сразу будет видна. Одна проверка кушать много не просит и &quot;лучше перебдеть, чем недобдеть&quot;.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-10T15:18:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151108#p151108</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151104#p151104" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stuermer пишет:</cite><blockquote><p>контроль ошибок</p></blockquote></div><div class="quotebox"><cite>PostMessage —&gt; ErrorLevel пишет:</cite><blockquote><p>ErrorLevel is set to 1 if there was a problem such as the target window or control not existing. Otherwise, it is set to 0.</p></blockquote></div><p>А как окно может не существовать, если мы только что дождались его активности? ErrorLevel здесь никогда не появится.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-10T13:15:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151104#p151104</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151103#p151103" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Почему Errorlevel не нужен? Мало ли какие глюки могут быть в системе, контроль ошибок. По поводу контрола, работает и так, зачем усложнять, главное, что приложение активно, это касается всех контролов и любого окна приложения (у Winamp например, много окон, когда любое из них активно, то и весь процесс активен). Спасибо.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-10T10:35:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151103#p151103</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151099#p151099" />
			<content type="html"><![CDATA[<p>Так и должно быть. Sleep не нужен, ErrorLevel тоже. Сообщение посылать лучше не окну, а контролу, который в фокусе. Ищите примеры отправки этого сообщения на нашем форуме.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-09T20:08:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151099#p151099</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151098#p151098" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Ок, убрал Return. Теперь стоит в бесконечном цикле.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-09T19:31:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151098#p151098</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151097#p151097" />
			<content type="html"><![CDATA[<p><strong>stuermer</strong><br />Код секции автовыполнения начинается с начала скрипта и идёт до первого Return либо до объявления первой горячей клавиши. Если нет ни того, ни другого, то до конца скрипта. В вашем коде выполнение доходит до Return и останавливается.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-09T19:17:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151097#p151097</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151096#p151096" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>&#039;Return&#039; для чего нужен? В целом?</p></blockquote></div><p>В <a href="https://www.autohotkey.com/docs/commands/GroupAdd.htm">справке </a>после инициализации групп стоит return. Это конец секции автоисполнения. Если нет горячих клавиш получается, что у скрипт выгружается. Если убрать return не выгружается, но непонятно где конец секции автоисполнения.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-09T18:51:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151096#p151096</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151095#p151095" />
			<content type="html"><![CDATA[<p>&#039;Return&#039; для чего нужен? В целом?</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-12-09T17:14:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151095#p151095</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151094#p151094" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>; autoexecute begin
GroupAdd, WinRus, ahk_exe Viber.exe
return
; autoexecute end

Loop
{
	WinWaitActive ahk_group WinRus
	PostMessage 0x50,0,0x0419
	if ErrorLevel
		MsgBox Window doesn&#039;t exist!
		
	WinWaitNotActive
	Sleep 300
}
</code></pre></div><p>Скрипт запускается и сразу выгружается. Язык по умолчанию англ. и нужно установить русский для активных окон из группы WinRus.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-09T17:05:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151094#p151094</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151084#p151084" />
			<content type="html"><![CDATA[<p>Да, в начале скрипта создаёте группу, затем в цикле ожидаете активности любого окна из группы через <em>WinWaitActive</em> (загляните в справку, неправильно используете), посылаете окну сообщение, затем ожидаете его неактивности с помощью <em>WinWaitNotActive</em> (можно без параметров, применится к ранее активному окну).</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-08T15:35:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151084#p151084</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151083#p151083" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Это понятно, но делается это один раз? Значит нужно делать state machine и на первом шаге создавать группу? На остальных state проверять смену окна как условие перехода на другой state и только при смене state 1 раз посылать месседж в активное окно. Цикл будет проходить через соответствующий state (Сase). Это практика из PLC-программирования, есть такая практика в AHK?</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-08T15:24:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151083#p151083</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение раскладки в зависимости от активной программы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151062#p151062" />
			<content type="html"><![CDATA[<p>В группу окна добавляются через GroupAdd.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-07T18:19:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151062#p151062</id>
		</entry>
</feed>
