<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Автоматическое переключение между альтернативными раскладками]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=18518</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=18518&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Автоматическое переключение между альтернативными раскладками».]]></description>
		<lastBuildDate>Fri, 07 Nov 2025 18:47:46 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Автоматическое переключение между альтернативными раскладками]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162856#p162856</link>
			<description><![CDATA[<p>Я не знаком, к сожалению, с клавиатурой Dygma Defy. Но вы можете проверить, выдаёт ли она виртуальные коды клавиш таким скриптом:<br /></p><div class="codebox"><pre><code>#Requires AutoHotkey v1

#Persistent
#InstallKeybdHook
KeyHistory</code></pre></div><p>Понажимайте клавиши, и нажмите F5. Если виртуальные коды появляются, нужно просто найти готовую раскладку где-нибудь на GitHub, и установить её.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 07 Nov 2025 18:47:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162856#p162856</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Автоматическое переключение между альтернативными раскладками]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162855#p162855</link>
			<description><![CDATA[<p>Если Вы имеете ввиду установочные пакеты Microsoft keyboard layout creator, то у меня нестандартная клавиатура (Dygma Defy) и компоновка клавиш некоторые из которых эта бородатая программа не распознает, поэтому и прошлось прибегнуть к AHK <strong>teadrinker</strong></p>]]></description>
			<author><![CDATA[null@example.com (andreyr.2019)]]></author>
			<pubDate>Fri, 07 Nov 2025 17:06:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162855#p162855</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Автоматическое переключение между альтернативными раскладками]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162854#p162854</link>
			<description><![CDATA[<p>Так а зачем вы пытаетесь изменить раскладку через переназначение клавиш? Её же просто установить можно, и переключать, как обычно.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 07 Nov 2025 16:42:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162854#p162854</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Автоматическое переключение между альтернативными раскладками]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162853#p162853</link>
			<description><![CDATA[<p>Решение которое выдал YandexGPT, выдаёт ошибки и неправильно переназначает почему-то, хотя переназначения написаны верно. Может кто-то сможет допилить</p><div class="codebox"><pre><code>#SingleInstance force

; === Настройки: ID раскладок ===
; Основные языки (их &quot;базовые&quot; ID, как они видны в системе)
englishLayoutID := 0x00000409  ; Английский (US QWERTY)
russianLayoutID := 0x00000419  ; Русский (ЙЦУКЕН)

; Целевые раскладки (нужно узнать и подставить свои!)
targetEnglishLayout := 0x00010409  ; Пример ID для Colemak DH
targetRussianLayout := 0x00020419  ; Пример ID для Диктор

; --- Обработчик события смены языка ввода ---
OnInputLanguageChange =&gt; {
    currentID := GetKeyboardLayout()

    if (currentID == englishLayoutID) {
        if (GetKeyboardLayout() != targetEnglishLayout) {
            SetKeyboardLayout(targetEnglishLayout)
            ToolTip(&quot;Colemak DH (EN)&quot;, 100, 100)
            Sleep(1000)
            ToolTip(&quot;&quot;)  ; убрать подсказку
        }
    }
    else if (currentID == russianLayoutID) {
        if (GetKeyboardLayout() != targetRussianLayout) {
            SetKeyboardLayout(targetRussianLayout)
            ToolTip(&quot;Диктор (RU)&quot;, 100, 100)
            Sleep(1000)
            ToolTip(&quot;&quot;)  ; убрать подсказку
        }
    }
}

; --- Вспомогательные функции ---

GetKeyboardLayout() {
    threadID := DllCall(&quot;GetWindowThreadProcessId&quot;, &quot;ptr&quot;, WinExist(&quot;A&quot;), &quot;ptr*&quot;, 0)
    return DllCall(&quot;GetKeyboardLayout&quot;, &quot;ptr&quot;, threadID, &quot;uint&quot;)
}

SetKeyboardLayout(layoutID) {
    DllCall(&quot;user32.dll\ActivateKeyboardLayout&quot;, &quot;ptr&quot;, layoutID, &quot;uint&quot;, 0)
}

; --- Горячие клавиши для диагностики ---

^!L::  ; Ctrl+Alt+L — принудительное переключение
    OnInputLanguageChange()
    MsgBox(&quot;Переключение выполнено!&quot;)
return

^!I::  ; Ctrl+Alt+I — показать текущий ID раскладки
    current := GetKeyboardLayout()
    MsgBox(&quot;Текущий ID раскладки: 0x&quot; . Format(&quot;{:08X}&quot;, current))
return
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (andreyr.2019)]]></author>
			<pubDate>Fri, 07 Nov 2025 15:24:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162853#p162853</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Автоматическое переключение между альтернативными раскладками]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162852#p162852</link>
			<description><![CDATA[<p>Это примитивный шаблон, который я сделал сам на базе файла с гитхаба проекта Colemak DH, в оригинале тут было только изменение англ. раскладки, я также добавил изменение русской, и скрипт перестал нормально работать из-за конфликтов переназначений, наверно нужно добавить какие-то функции типа OnInputLanguageChange, if-else и т. д., но я не знаю как.</p><div class="codebox"><pre><code>; Первая секция скрипта - Переназначение Йцукен на Диктор


; Верхний ряд клавишь 

й::ф
ц::ь
у::х
к::я
е::ы
н::з
г::в
ш::к
щ::д
з::ч


; Средний ряд клавишь

ф::у
ы::и
в::е
а::о
п::а
р::л
о::н
л::т
д::с
ж::р


; Нижний ряд клавишь

я::щ
ч::ш
с::э
м::ю
и::ц
т::б
ь::м
б::п
ю::г
.::ж

; Вторая секция скрипта - Переназначение Qwerty на Colemak

; Верхний ряд клавишь 

q::q
w::w
e::f
r::p
t::b
y::j
u::l
i::u
o::y
p::;

; Средний ряд клавишь

a::a
s::r
d::s
f::t
g::g
h::m
j::n
k::e
l::i
;::o

; Нижний ряд клавишь

z::z
x::x
c::c
v::d
b::v
n::k
m::h</code></pre></div><p>Буду рад любой помощи, заранее спасибо всем, кто решит ответить.</p>]]></description>
			<author><![CDATA[null@example.com (andreyr.2019)]]></author>
			<pubDate>Fri, 07 Nov 2025 15:21:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162852#p162852</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Автоматическое переключение между альтернативными раскладками]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162851#p162851</link>
			<description><![CDATA[<p>Здравствуйте, помогите, пожалуйста, реализовать простую идею: мне нужен скрипт, который изменяет раскладку клавиатуры с «Qwerty» на «Colemak DH», когда в Windows активен английский язык ввода, и чтобы этот же скрипт также изменял раскладку с «Йцукен» на «Диктор», когда в качестве языка ввода активен русский.</p>]]></description>
			<author><![CDATA[null@example.com (andreyr.2019)]]></author>
			<pubDate>Fri, 07 Nov 2025 15:18:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162851#p162851</guid>
		</item>
	</channel>
</rss>
