<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AutoHotkey: скрипт для переключения языка по умолчанию]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=73&amp;type=atom" />
	<updated>2006-07-24T20:31:15Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=73</id>
		<entry>
			<title type="html"><![CDATA[AutoHotkey: скрипт для переключения языка по умолчанию]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=139#p139" />
			<content type="html"><![CDATA[<p>Скрипт удобно использовать, если язык <strong>по умолчанию </strong>у вас Русский, а для какой-нибудь проги или игрушки требуется Английский. Вот, например, поставляемый с AutoHotkey SmartGUI.exe не запускается на русском языке <strong>по умолчанию</strong>. Или решили вы потестить какой-нибудь скрипт с англоязычного AHK-форума, а буржуи все поголовно назначают горячие клавиши по-английски, и они (гор.клав.) тогда не будут работать. Вот тут-то этот скриптик и пригодится. Быстренько изменили язык, поюзали прогу-скрипт, и вернули язык на родину (в прямом смысле <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />).<br />Скрипт тестировался на WinXP.<br />Подробнее про язык <strong>по умолчанию </strong>можно прочитать в статье <a href="http://www.script-coding.com/AutoHotkey/AhkRussian_3b.html">http://www.script-coding.com/AutoHotkey … an_3b.html</a></p><div class="codebox"><pre><code>;************************************************************************************************
; AutoHotkey Version:   1.0.41.01+
; Автор:                Androgen Belkin
; Имя скрипта:          Переключить язык по умолчанию.ahk (v.2.1)
;************************************************************************************************
; Проверить и, если нужно, переключить язык ввода по умолчанию (тот, что при загрузке Windows).
; Первые две раскладки, зарегистрированные в реестре, должны быть либо Английская и Русская, либо наоборот (Русская и Английская).
; Если они другие - скрипт не произведет никаких действий.
;************************************************************************************************
#NoEnv      ; запрещаем имена переменных как у переменных окружения (повышаем производительность скрипта)
#NoTrayIcon ; не показывать иконку скрипта в трее
SPI_SETDEFAULTINPUTLANG = 0x5A ; команда назначения языка по умолчанию
LangRU = 419 ; константа для русского языка
LangEN = 409 ; константа для английского языка

RegRead, Preload_Lang_1, HKEY_CURRENT_USER, Keyboard Layout\Preload, 1 ; прочитать какая первая раскладка (по умолчанию)
RegRead, Preload_Lang_2, HKEY_CURRENT_USER, Keyboard Layout\Preload, 2 ; прочитать какая вторая раскладка

If ( Preload_Lang_1 &lt;&gt; LangRU ; если раскладка по умолчанию не русская и не английская...
    AND Preload_Lang_1 &lt;&gt; LangEN
    OR Preload_Lang_2 &lt;&gt; LangRU ; ...или если вторая раскладка не русская и не английская, то...
    AND Preload_Lang_2 &lt;&gt; LangEN )
{    ; показываем сообщение
    MsgBox, 0, Внимание!, Обнаружены не те раскладки, на которые рассчитана работа скрипта.`n%A_Tab%%A_Tab% Скрипт прерывает свою работу.
    ExitApp ; завершить скрипт    
}
If Preload_Lang_1 = %LangRU% ; если русская, то...
{
    MsgBox, 1, Внимание., Текущий язык ввода по умолчанию - русский.`n`n              Изменить на АНГЛИЙСКИЙ ? ; оформляем сообщение
    IfMsgBox, Cancel ; если &quot;Отмена&quot;, то...
        ExitApp ; завершить скрипт
    DllCall( &quot;SystemParametersInfo&quot;, UInt, SPI_SETDEFAULTINPUTLANG, UInt, 0, UInt, 4090 . LangEN, UInt, 4 ) ; изменить язык на английский    
    RegWrite, REG_SZ, HKCU, Keyboard Layout\Preload , 1, 00000%LangEN% ; пишем английскую раскладку в реестр
    RegWrite, REG_SZ, HKCU, Keyboard Layout\Preload , 2, 00000%LangRU% ; пишем русскую раскладку в реестр
}
If Preload_Lang_1 = %LangEN% ; если английская, то...
{    
    MsgBox, 1, Внимание., Текущий язык ввода по умолчанию - английский.`n`n                     Изменить на РУССКИЙ ? ; оформляем сообщение
    IfMsgBox, Cancel ; если &quot;Отмена&quot;, то...
        ExitApp ; завершить скрипт
    DllCall( &quot;SystemParametersInfo&quot;, UInt, SPI_SETDEFAULTINPUTLANG, UInt, 0, UInt, 4090 . LangRU, UInt, 4 ) ; изменить язык на русский    
    RegWrite, REG_SZ, HKCU, Keyboard Layout\Preload , 1, 00000%LangRU% ; пишем русскую раскладку в реестр
    RegWrite, REG_SZ, HKCU, Keyboard Layout\Preload , 2, 00000%LangEN% ; пишем английскую раскладку в реестр
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Androgen]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=4</uri>
			</author>
			<updated>2006-07-24T20:31:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=139#p139</id>
		</entry>
</feed>
