Я использую Windows 7, и я хотел бы определить настраиваемую горячую клавишу для переключения между разными языками ввода.
Я знаю, что могу изменить их на Ctrl + Shift , Left Alt + Shift или серьезный акцент, но мне не нравится ни то, ни другое. Итак, есть ли способ определить что-то вроде Ctrl + Space для переключения языка ввода?
Я думаю, что Windows изначально не поддерживает изменение этих ключей. В любом случае вы можете написать сценарий AutoIt для прослушивания пользовательских привязок клавиш и программно отправить в систему одно из предопределенных сочетаний клавиш для изменения раскладки клавиатуры.
; ^ = Ctrl ;! = Alt; # = WinKey (Meta); + = ShiftHotKeySet ("^ {Пробел}", "изменить"); Регистры Control + Пробел; Основной цикл Пока 1 спящий режим (100) WEnd; Изменяет раскладку клавиатуры Функция change () Отправить ("{ ALTDOWN} "); Удерживайте Alt Sleep (100); Подождите 100 миллисекунд Отправить (" {LSHIFT} {ALTUP} "); Нажмите Left-Shift и отпустите AltEndFunc
Просто загрузите и установите AutoIt (используйте эту ссылку для загрузки и установки) и создайте файл с расширением .au3
. Скопируйте и вставьте приведенный выше код и сохраните его. Вы можете поместить этот файл в папку автозагрузки, если хотите, чтобы он открывался при входе в систему.
Приведенный выше сценарий не работал у меня, но я изменил его, и теперь он работает.
#Include ; ~ #RequireAdmin; ^ = Ctrl ;! = Alt; # = WinKey (Meta); + = ShiftHotKeySet ("^ {Space}", "change"); Регистрирует Contorl + Space $ dll = DllOpen ("user32.dll") ToolTip ("Попробуйте использовать ^ Space" & @ CRLF & "!!!!!!!!!!!!!!!!!!!") Sleep (3000) ToolTip (''); Main loopWhile 1 Sleep (100) WEnd; Изменяет раскладку клавиатурыFunc change () Пока _IsPressed ("11", $ dll) Sleep (10) WEnd Send ("{ALTDOWN}"); Удерживайте нажатой Alt Sleep (100); Подождите 100 миллисекунд, отправьте ("{LSHIFT} {ALTUP}"); Нажмите влево- Сдвиньте и отпустите AltEndFunc
Приведенный выше сценарий не работал у меня, но я изменил его, и теперь он работает.
#Include ; ~ #RequireAdmin; ^ = Ctrl ;! = Alt; # = WinKey (Meta); + = ShiftHotKeySet ("^ {Space}", "change"); Регистрирует Contorl + Space $ dll = DllOpen ("user32. dll ") ToolTip (" Попробуйте использовать ^ Space "& @ CRLF &" !!!!!!!!!!!!!!!!!!! ") Sleep (3000) ToolTip (''); Main loopWhile 1 Sleep (100) WEnd; Изменяет раскладку клавиатуры Функция change () Пока _IsPressed ("11", $ dll) Sleep (10) WEnd Send ("{ALTDOWN}"); Удерживайте Alt Sleep (100); Подождите 100 миллисекунд Отправить (" {LSHIFT} {ALTUP} "); Нажмите левую клавишу Shift и отпустите AltEndFunc
В Windows 7 в разделе Панель управления Регион и язык Клавиатуры и язык выберите «Изменить клавиатуру». Вы увидите небольшое всплывающее окно; там выберите «Расширенный ключ. Настройки ‘, который позволяет вам устанавливать комбинации для прямого получения каждой целевой клавиатуры, а также общую последовательность клавиш переключения.

-
2Проблема в том, что он предлагает только 3 варианта, один из которых не находится на одной и той же клавише в обоих макетах … Другой вариант — установить разные клавиши для каждого языка, но для этого требуется комбинация модификаторов. Не идеально. — Хенрик Эрландссон, 21 окт., 16:35
В Windows 7 в разделе «Панель управления Регион и язык Клавиатуры и язык» выберите «Изменить клавиатуру». Вы получите небольшое всплывающее окно; там выбрали «Расширенные настройки клавиш», что позволяет вам устанавливать комбинации для прямого получения каждой целевой клавиатуры, а также общую последовательность клавиш переключения.
Альтернативный ответ
Если две раскладки клавиатуры не отличаются многими символами, вы можете добавить Alt-модификаторы для иностранного языка (например, стандартные символы макета США на Alt-слое немецкой клавиатуры) с помощью такой утилиты, как AutoHotKey или аналогичной.
Или, создайте раскладку для ОС , что является более правильным способом.
- никогда не нужно переключаться и задаваться вопросом, какой язык активен ( может сильно отвлекать)
- вы можете часто обращаться к слою Alt, и это замедляет ваш поток.
Для некоторых европейских языков , вы можете перемещать символы навсегда, вместо того, чтобы иметь слой.
Например, комбинации [] и {} для Alt/Shift из () и [] ;: ‘»для клавиш рядом с üäö, что позволяет сохранить почти нормальную раскладку для США. для кодирования и освободите место для символов ваших языков в местах, где они обычно находятся.

Альтернативный ответ
Если две раскладки клавиатуры не отличаются многими символами, вы можете добавить Alt-модификаторы для иностранного языка (скажем, , стандартные символы макета США на слое Alt немецкой клавиатуры) с помощью утилиты Например, AutoHotKey или аналогичный.
Или создайте раскладку для ОС , что является более правильным способом сделать это.
- никогда не нужно переключаться и задаваться вопросом, какой язык активен (может сильно отвлекать).
- вы можете часто обращаться к слою Alt, и это замедляет ваш поток.
Для некоторых европейских языков вместо слоя можно перемещать символы навсегда.
Например, [] и { } на комбинации Alt/Shift из () и [] ;: ‘»на клавиши рядом с üäö, что позволяет вам сохранить почти нормальную американскую раскладку для кодирования и освободить место для символов ваших языков в местах, где они обычно находятся. p>
Windows 7 постоянно меняет настройки языка (клавиатуры)
Я использую Windows 7 Ultimate в сети Windows. Мои настройки по умолчанию — датский язык, датская раскладка клавиатуры, но английский системный язык. У меня установлена только датская раскладка клавиатуры (в текстовых службах и языках ввода).
Однако на экране входа в систему я могу выбрать датский и английский, но все, что я выберу, Windows 7 меняет язык системы (и клавиатуры макет!) на английский (США). Поскольку это настройка для каждого приложения, я должен изменить настройку языка (языковая панель на панели задач)
Где это можно изменить в масштабах всей системы и на постоянной основе?
У меня была такая же проблема меняя регионы на себе.
Я щелкнул правой кнопкой мыши значок клавиатуры в правом нижнем углу панели задач и снял флажок «автоматическая настройка».
Французский снимок экрана:
-
Не знаю, почему это не дает больше голосов … просто и именно то, что нужно — freefaller 9 января ’16 в 9:29
-
@ user413734 — Где именно вы видите «Автоматическая настройка»? Спасибо. — nsandersen 19 апр 2016, 09:29
-
@nsandersen Сверните языковую панель, если она у вас есть. Щелкните правой кнопкой мыши на клавиатуре ttom справа, на панели задач. Нажмите автонастройка. См. Изображение (на французском) imgur.com/2N59XpF — David G, 22 июня 2016, 18:09
У меня была такая же проблема, когда он менял регионы на мне.
Я щелкнул правой кнопкой мыши значок клавиатуры в в правом нижнем углу панели задач и снят флажок «Автоматическая настройка».
Французский снимок экрана:
Откройте Регион и языки в Панели управления и сделайте следующее:
Нажмите Клавиатуры и языки и нажмите Изменить клавиатуру …
Отсюда вы можете изменить язык ввода по умолчанию на датский .
Или вы можете полностью удалить клавиатуру США .
Выполнение любого из этих действий Это может привести к тому, что вы сможете использовать только датскую клавиатуру вместо того, чтобы менять ее для каждого приложения, поскольку она делает ее общесистемной по умолчанию.
-
1К. Котро, Тьяго М: Если бы это было так просто … Как уже упоминалось, у меня уже установлена ТОЛЬКО датская клавиатура. Итак, моя установка такая, как показано выше у Тьяго, но ТОЛЬКО датская клавиатура.. В любом случае, при перезагрузке языковые настройки EN и клавиатура тоже. ChrisF, извините за акцент в исходном посте — разочарование … — Ханс 01 июл., 10:57
-
Я ДУМАЮ, Я ЭТО РЕШЕЛ! Я изменил язык по умолчанию на английский (США) и выбрал датскую клавиатуру. Кажется, пока работает. — Ханс 04 июля 2011, 15:03
-
1Э … Меня обманули. Windows 7 по-прежнему удается каким-то образом внедрять американскую раскладку клавиатуры и устанавливает ее по умолчанию! Опять же, я полагаю, что убрал все упоминания о клавиатурах США в настройках «Текстовые службы и языки ввода», но они все еще там! — Ганс 04 июля 2011 г., 15:11
-
Я нашел решение здесь, в первом комментарии: answers.microsoft.com/en-us/windows/forum/windows_xp-desktop/… — atraudes 6 июня 2012, 17:37
Откройте Регион и языки в Панели управления и сделайте это:
Откройте вкладку Клавиатуры и языки и нажмите Сменить клавиатуру …
Отсюда вы можете изменить язык ввода по умолчанию на датский .
Или вы можете полностью удалить клавиатуру США .
Выполнение любого из этих действий должно привести к тому, что вы сможете использовать только датскую клавиатуру вместо того, чтобы менять ее для каждого приложения. поскольку он делает его общесистемным по умолчанию.
Лучшее решение (при условии, что вы хотите иметь доступ к более чем одной клавиатуре, что я и сделал) — это перейти в Панель управления, Клавиатуры и языки/дополнительные настройки.
И измените сочетание клавиш для переключения клавиатуры с Ctrl / Shift на «Нет»!
Все время я тоже думал, что он меняется с Eng на Fr на «случайной» основе. Но это было вовсе не случайно: я всегда использую сочетания клавиш, и одно из моих любимых — Ctrl + Shift + Tab для перехода к предыдущей вкладке в Chrome.
Обнаружил конфликт ярлыков при проверке чьего-либо предложения войти в панель управления. Вот тогда я увидел проблему. Как только я отключил сочетание клавиш для смены языка (не особо важно), у меня больше никогда не было проблем. Случайно или иначе! Тайна раскрыта!
-
Это помогло мне, спасибо! Обратите внимание, что вы все еще можете переключать раскладки клавиатуры с помощью Win + Space. — Робин 18 окт. ’17 в 11:35
Лучшее решение (при условии, что вы хотите иметь доступ к более чем одной клавиатуре, что я и сделал) — зайти в Панель управления, Клавиатуры и языки/дополнительные настройки.
И измените сочетание клавиш для переключения клавиатуры с Ctrl / Shift на «Нет»!
Все время я тоже думал, что он меняется с Eng на Fr на «случайной» основе. Но это было вовсе не случайно: я всегда использую сочетания клавиш, и одно из моих любимых — Ctrl + Shift + Tab для перехода к предыдущей вкладке в Chrome.
Обнаружил конфликт ярлыков при проверке чьего-либо предложения войти в панель управления. Вот тогда я увидел проблему. После того, как я отключил сочетание клавиш для смены языков (не страшно), у меня больше никогда не было этой проблемы. Случайно или иначе! Тайна раскрыта!
Перейдите в Панель управления> Регион и Языки> вкладка Клавиатуры и языки> Смените клавиатуры и удалите те, которые вам не нужны.
Перейдите в Панель управления> Регион и языки> вкладка Клавиатуры и языки> Смените клавиатуры и удалите те, которые вам не нужны.
У меня была такая же проблема: My KB продолжал переключаться между клавиатурой США и Великобритании , хотя у меня не было установлено UK KB. Мне удалось решить эту проблему, добавив британскую клавиатуру, а затем удалив ее. Языковая панель исчезла, и мой вводимый КБ теперь остается как США..
-
1Спасибо ты! После всех вышеперечисленных ответов этот наконец сработал; Думаю, окна все еще глючат после всех этих лет. — эпоха 13 фев ’18 в 8:34
У меня была та же проблема: моя KB продолжала переключаться между клавиатурами США и Великобритании , хотя я этого не делал не установлен UK KB. Мне удалось решить эту проблему, добавив британскую клавиатуру, а затем удалив ее. Языковая панель исчезла, и мой входной КБ теперь остается как США.
Это самая досадная ошибка, и она по-прежнему случается с подлинно новым компьютером HP с
Windows 7 Buisness OEM, но моя проблема также связана с тем, что ‘MS Word 2003’ не меняет раскладку клавиатуры (не удалось правильно использовать апостроф)
Я использую 2 раскладки клавиатуры: международную (США) и французскую
Я нашел эти решения, которые сработали для меня, и некоторые, которые кажутся вашей проблемой :
МЕТОД 1
В MS WORD 2003 [“] и апострофы [‘] не будут отображаться, пока не будет нажата другая клавиша .
Тогда эта клавиша и цитата или апостроф появятся на экране.
При проверке настроек клавиатуры система была установлена на международную раскладку клавиатуры США и французскую.
Измените раскладку клавиатуры на другую раскладку для США и удалил раскладку клавиатуры США-международная.
После нажатия кнопки ОК я протестировал ее на документе Word, и проблема все еще оставалась.
Но после перезагрузки система вернулась в нормальное состояние, и я мог использовать апострофы и кавычки, как обычно.
Предложения (в случае сбоя) :
Попробуйте изменить Unicode на локальном языке Windows, чтобы посмотреть, как он себя ведет.
Еще одно предложение, связанное с проблемами переключения языка приложения, — изменить комбинацию горячих клавиш, которая переключает раскладку клавиатуры.
Также отключите в Word при настройке параметра Microsoft Word «Умные кавычки».
СПОСОБ 2
Перед изменением значений реестра я рекомендую создать точку восстановления или резервную копию реестра.
Используйте это на свой страх и риск
Чтобы изменить раскладку клавиатуры вручную, вам необходимо изменить раскладку клавиатуры preload
Раздел реестра в реестре:
Нажмите Пуск код >> введите Regedit. exe
Найдите в реестре этот ключ:
HKEY_CURRENT_USER Keyboard Layout Preload 1
Вам нужно будет отредактировать ключ реестра, изменив настройку значения строкового ключа « 1
» на номер «ID Language code», указанный ниже рядом с названием раскладки клавиатуры, которое вы хотите.
Закройте Regedit.exe
Перезагрузите компьютер
Примечание. : Preload 2
используется, если вы хотите иметь возможность переключаться между двумя раскладками клавиатуры.
Найдите идентификационный код языка здесь ниже:
00000402 = "bg" 00000404 = "ch" 00000405 = "cz" 00000406 = "dk 00000407 = "gr" 00000408 = "gk" 00000409 = "us" 0000040A = "sp" 0000040B = "su" 0000040C = "fr" 0000040E = "hu" 0000040F = "is" 00000410 = "it" 00000411 = "jp 00000412 = "ko" 00000413 = "nl" 00000414 = "no" 00000415 = "pl" 00000416 = "br" 00000418 = "ro" 00000419 = "ru" 0000041A = "yu" 0000041B = "sl" 0000041C = "us 0000041D = "sv" 0000041F = "tr" 00000422 = "us" 00000423 = "us" 00000424 = "yu" 00000425 = "et" 00000426 = "us" 00000427 = "us" 00000804 = "ch" 00000807 = "sg 00000809 = "uk" 0000080A = "la" 0000080C = "be" 00000813 = "be" 00000816 = "po" 00000C0C = "cf" 00000C1A = "us" 00001009 = "us" 0000100C = "sf" 00001809 = "us 00010402 = "us" 00010405 = "cz" 00010407 = "gr" 00010408 = "gk" 00010409 = "dv" 0001040A = "sp" 0001040E = "hu" 00010410 = "it" 00010415 = "pl" 00010419 = "ru" 0001041B = "sl" 0001041F = "tr" 00010426 = "us" 00010C0C = "cf" 00010C1A = "us" 00020408 = "gk" 00020409 = "us" 00030409 = "usl" 00040409 = "usr" 00050408 = "gk" "
Для получения дополнительной информации о добавлении раскладки клавиатуры вручную проверьте эту ссылку:
Добавление и удаление языков клавиатуры с помощью PowerShell
Это самая досадная ошибка, и она по-прежнему случается с подлинно новым компьютером HP с
Windows 7 Buisness OEM. но моя проблема также связана с тем, что «MS Word 2003» не меняет раскладку клавиатуры (не может правильно апостроф)
Я использую 2 раскладки клавиатуры: международная американская и французская
Я нашел эти решения, которые сработали для меня, и некоторые, которые кажутся вашей проблемой:
МЕТОД 1
В MS WORD 2003 [«] И апострофы [‘] не будут отображаться, пока не будет нажата другая клавиша.
Затем эта клавиша и цитата или апостроф будут отображаться на экране.
Проверка настроек клавиатуры система была настроена на международную раскладку клавиатуры США и французскую раскладку клавиатуры.
Измените раскладку клавиатуры на другую раскладку для США и удалите раскладку клавиатуры «США-международная»..
После нажатия ОК я протестировал его на документе Word, и проблема все еще оставалась.
Но после перезагрузки система вернулась в нормальное состояние, и я мог использовать апострофы и кавычки, как обычно.
Предложения (в случае сбоя) :
Попробуйте изменить Unicode на локальном языке Windows, чтобы посмотреть, как он себя ведет.
Еще одно предложение, связанное с проблемами переключения языка приложения, — изменить комбинацию горячих клавиш, которая переключает раскладку клавиатуры.
Также отключите в Word при настройке параметра Microsoft Word «Умные кавычки».
СПОСОБ 2
Перед изменением значений реестра я рекомендую создать точку восстановления или резервную копию реестра.
Используйте это на свой страх и риск
Чтобы изменить раскладку клавиатуры вручную, вам необходимо изменить раскладку клавиатуры preload
Раздел реестра в реестре:
Нажмите Пуск
> type Regedit.exe
Найдите в реестре этот ключ:
HKEY_CURRENT_USER Keyboard Layout Preload 1
Вам нужно будет отредактировать ключ реестра, изменив настройку значения строкового ключа « 1
» на «ID Language code «номер, указанный ниже рядом с названием нужной раскладки клавиатуры.
Закройте Regedit.exe
Перезагрузите Компьютер
Примечание: Prelo ad 2
используется, если вы хотите иметь возможность переключаться между двумя раскладками клавиатуры..
Найдите идентификационный код языка здесь ниже:
00000402 = "bg" 00000404 = "ch" 00000405 = "cz" 00000406 = "dk 00000407 = "gr" 00000408 = "gk" 00000409 = "us" 0000040A = "sp" 0000040B = "su" 0000040C = "fr" 0000040E = "hu" 0000040F = "is" 00000410 = "it" 00000411 = "jp 00000412 = "ko" 00000413 = "nl" 00000414 = "no" 00000415 = "pl" 00000416 = "br" 00000418 = "ro" 00000419 = "ru" 0000041A = "yu" 0000041B = "sl" 0000041C = "us 0000041D = "sv" 0000041F = "tr" 00000422 = "us" 00000423 = "us" 00000424 = "yu" 00000425 = "et" 00000426 = "us" 00000427 = "us" 00000804 = "ch" 00000807 = "sg 00000809 = "uk" 0000080A = "la" 0000080C = "be" 00000813 = "be" 00000816 = "po" 00000C0C = "cf" 00000C1A = "us" 00001009 = "us" 0000100C = "sf" 00001809 = "us 00010402 = "us" 00010405 = "cz" 00010407 = "gr" 00010408 = "gk" 00010409 = "dv" 0001040A = "sp" 0001040E = "hu" 00010410 = "it" 00010415 = "pl" 00010419 = "ru" 0001041B = "sl" 0001041F = "tr" 00010426 = "us" 00010C0C = "cf" 00010C1A = "us" 00020408 = "gk" 00020409 = "us" 00030409 = "usl" 00040409 = "usr" 00050408 = "gk" "
Для получения дополнительной информации о добавлении раскладки клавиатуры вручную проверьте эту ссылку:
Добавление и удаление языков клавиатуры с помощью PowerShell
Используйте AHK. Наконец, после всех моих попыток он решил мою проблему с автоматическим переключением русского и английского языков в Windows 7. Вы определите, какой язык вы хотите видеть для всех потоков/окон, и сможете изменить его с помощью сочетания клавиш. Код:
#SingleInstance, Force; LangCode_First: = 67699721; langcode первого языка в десятичном формате (я сделал это 0x0409 -> 0x04090409 ---> https://www.rapidtables.com/convert/number/hex-to-decimal.html LangCode_HEX_First: = 0x0409; langcode of the first language в HEX (получить здесь https://docs.microsoft. com/en-us/windows/win32/menurc/varfileinfo-block) LangCode_Second: = 68748313; langcode второго языкаLangCode_HEX_Second: = 0x0419; langcode второго языка в HEX; Английский (США) 0x0419 0x4190419 68748313 (с шестнадцатеричного по декабрь); Русский 0x0409 0x4090409 67699721 (HEX - Dec); функция, которая устанавливает язык клавиатуры SetDefaultKeyboard (LocaleID) {Static SPI_SETDEFAULTINPUTLANG: = 0x005A, SPIF_SENDWININICHANGE: = 2 Lan: = DllCall ("Format," StrayoutLayout " ", LocaleID)," Int ", 0) VarSetCapacity (binaryLocaleID, 4, 0) NumPut (LocaleID, binaryLocaleID) DllCall (" SystemParametersInfo "," UInt ", SPI_SETDEFAULTINPUTLANG," UInt ", 0," binaryLocaleID ", &Locale UInt ", SPIF_SENDWININICHANGE) WinGet, windows, List Loop% windows {PostMessage 0x50, 0,% Lan,,%" ahk_id "windows% A_Index%}}; ваш ярлык для переключения языка! LShift :: SetKey (); функция, определяющая текущий язык и при необходимости изменить его SetKey () {if ("" DllCall ("GetKeyboardLayout", Int, DllCall ("GetWindowThreadProcessId", int, WinActive ("A"), Int, 0)) = 67699721); изменить укажите здесь свой языковой код {SetDefaultKeyboard (0x0419); измените значение здесь на свой языковой код} else if ("" DllCall ("GetKeyboardLayout", Int, DllCall ("GetWindowThreadProcessId", int, WinActive ("A"), Int, 0)) = 68748313); измените значение здесь на свой языковой код {SetDefaultKeyboard (0x0409); измените значение здесь на свой языковой код}}
В начале вы можете увидеть требуемые языковые коды. Вы можете извлечь их отсюда и преобразовать здесь дополнительные параметры (HEX в DEC). Измените также переменные в конце кода, я отметил, где это нужно сделать.
Также лучше удалить default сочетание клавиш с переключением языка в меню дополнительных настроек клавиш, изменив оба параметра в Изменить последовательность клавиш на Не назначено
-
Полный список языковых кодов находится здесь. — HeyJude 19 мая ’20 в 18:46
-
Большое спасибо, это единственный способ, который у меня сработал. Я хотел использовать блокировку прокрутки для переключения между двумя клавиатурами, поэтому это код pastebin.com/DuNERZje — он также синхронизируется с состоянием блокировки прокрутки при запуске. — Krzysiu 28 мая ’20 в 12:43
-
@Krzysiu Учтите, что я замечаю некоторые зависания (иногда), когда я использую этот скрипт и вызываю изменение макета с помощью ярлыков. — Ярослав Уолли, 28 мая ’20, 15:01
-
Спасибо! Я добавлю простые функции отладки, и если это произойдет, я расскажу, что могло вызвать это. — Krzysiu 29 мая ’20 в 16:06
Используйте AHK. Наконец, после всех моих попыток он решил мою проблему с автоматическим переключением русского и английского языков в Windows 7. Вы определите, какой язык вы хотите видеть для всех потоков/окон, и сможете изменить его с помощью сочетания клавиш. Код:
#SingleInstance, Force; LangCode_First: = 67699721; langcode первого языка в десятичном формате (я сделал это 0x0409 -> 0x04090409 ---> https://www.rapidtables.com/convert/number/hex-to-decimal.html LangCode_HEX_First: = 0x0409; langcode of the first language в HEX (получите его здесь https://docs.microsoft.com/en-us/windows/win32/menurc/varfileinfo-block)LangCode_Second: = 68748313; langcode второго языкаLangCode_HEX_Second: = 0x0419; langcode второго языка в HEX; Английский (США) 0x0419 0x4190419 68748313 (HEX до Dec); Русский 0x0409 0x4090409 67699721 (HEX до Dec); функция, которая устанавливает язык клавиатуры SetDefaultKeyboard (LocaleID) {Static SPI_SETDEFAULTINPUTLANG: = 0x005ENDEYBOARD: = 0x005DeyBoard: "," Str ", Format (" {: 08x} ", LocaleID)," Int ", 0) VarSetCapacity (binaryLocaleID, 4, 0) NumPut (LocaleID, binaryLocaleID) DllCall (" SystemParametersInfo "," UInt ", SPI_SETDEFAULTINPUTLANG, "UInt", 0, "UPtr", & binaryLocaleID, "UInt", SPIF_SENDWININICHANGE) WinGet, windows, List Loop% windows {PostMessage 0x50, 0,% Lan,,% "ahk_id" windows% A_Index%}}; ваш ярлык для переключения языка! LShift :: SetKey (); функция, которая определяет текущий язык и меняет его, если это необходимо SetKey () {if ("" DllCall (" GetKeyboardLayout ", Int, DllCall (" GetWindowThreadProcessId ", int, WinActive (" A "), Int, 0)) = 67699721); измените здесь значение на свой языковой код {SetDefaultKeyboard (0x0419); измените значение здесь на свой языковой код} else if ("" DllCall ("GetKeyboardLayout", Int, DllCall ("GetWindowThreadProcessId", int, WinActive ("A"), Int, 0)) = 68748313); измените здесь значение на свой языковой код {SetDefaultKeyboard (0x0409); измените здесь значение на свой языковой код}}
В начале вы можете увидеть языковые коды, которые требуются. Вы можете извлечь их отсюда и преобразовать дополнительные параметры здесь (HEX в DEC) Пожалуйста, измените также переменные в конце кода, я отметил, где вам нужно это сделать.
Также лучше удалить сочетание клавиш по умолчанию для переключения языка в меню дополнительных настроек клавиш, изменив оба параметра в Изменить последовательность клавиш на Не назначено
Я нашел решение, которое сработало для меня. Проблема заключалась в том, что у меня был установлен только Дворжак в разделе «Установленные службы», и, поскольку локаль компьютера была установлена на США, он продолжал использовать это значение по умолчанию. Как только я добавил США к установленным службам и установил Дворжак в качестве «языка ввода по умолчанию», он начал работать.
В вашем случае изменение языкового стандарта системы на датский может решить вашу проблему. В окне «Регион и язык» (первое изображение Тиаго) щелкните вкладку «Администрирование», затем нажмите «Изменить языковой стандарт системы» и выберите соответствующий вариант из списка.
Я не знаю, желательно ли это исправление для вас, но готово. Я действительно хотел бы, чтобы это было не так сложно; У меня нет этой проблемы на моем Mac … 😉
Я нашел решение, которое сработало для меня. Проблема заключалась в том, что у меня был установлен только Дворжак в разделе «Установленные службы», и, поскольку локаль компьютера была установлена на США, он продолжал использовать это значение по умолчанию. Как только я добавил США к установленным службам и установил Дворжак в качестве «языка ввода по умолчанию», он начал работать.
В вашем случае изменение языкового стандарта системы на датский может решить вашу проблему. В окне «Регион и язык» (первое изображение Тиаго) щелкните вкладку «Администрирование», затем нажмите «Изменить языковой стандарт системы» и выберите соответствующий вариант из списка.
Я не знаю, желательно ли это исправление для вас, но готово. Я действительно хотел бы, чтобы это было не так сложно; На моем Mac этой проблемы нет … 😉