Горячая клавиша для переключения языка ввода в Windows 7

Я использую 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 . Скопируйте и вставьте приведенный выше код и сохраните его. Вы можете поместить этот файл в папку автозагрузки, если хотите, чтобы он открывался при входе в систему.


3

Приведенный выше сценарий не работал у меня, но я изменил его, и теперь он работает.

  #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  

Улучшите этот ответ
отредактирован 01 декабря 2011 в 9:08
soandos
23.1 k2828 золотых знаков9898 серебряных знаков133133 бронзовых знака
ответил 31 марта ’11 в 18: 362011-03-31 18:36
добавить комментарий |

Приведенный выше сценарий не работал у меня, но я изменил его, и теперь он работает.

  #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  

1

В Windows 7 в разделе Панель управления Регион и язык Клавиатуры и язык выберите «Изменить клавиатуру». Вы увидите небольшое всплывающее окно; там выберите «Расширенный ключ. Настройки ‘, который позволяет вам устанавливать комбинации для прямого получения каждой целевой клавиатуры, а также общую последовательность клавиш переключения.

Улучшите этот ответ
ответил 14 дек. ’15 в 13:01
  • 2
    Проблема в том, что он предлагает только 3 варианта, один из которых не находится на одной и той же клавише в обоих макетах … Другой вариант — установить разные клавиши для каждого языка, но для этого требуется комбинация модификаторов. Не идеально. — Хенрик Эрландссон, 21 окт., 16:35
добавить комментарий |

В Windows 7 в разделе «Панель управления Регион и язык Клавиатуры и язык» выберите «Изменить клавиатуру». Вы получите небольшое всплывающее окно; там выбрали «Расширенные настройки клавиш», что позволяет вам устанавливать комбинации для прямого получения каждой целевой клавиатуры, а также общую последовательность клавиш переключения.


0

Альтернативный ответ

Если две раскладки клавиатуры не отличаются многими символами, вы можете добавить Alt-модификаторы для иностранного языка (например, стандартные символы макета США на Alt-слое немецкой клавиатуры) с помощью такой утилиты, как AutoHotKey или аналогичной.

Или, создайте раскладку для ОС , что является более правильным способом.

  • никогда не нужно переключаться и задаваться вопросом, какой язык активен ( может сильно отвлекать)
  • вы можете часто обращаться к слою Alt, и это замедляет ваш поток.

Для некоторых европейских языков , вы можете перемещать символы навсегда, вместо того, чтобы иметь слой.

Например, комбинации [] и {} для Alt/Shift из () и [] ;: ‘»для клавиш рядом с üäö, что позволяет сохранить почти нормальную раскладку для США. для кодирования и освободите место для символов ваших языков в местах, где они обычно находятся.

Улучшите этот ответ
отредактировано 21 октября 2016 года в 23:55
ответил 21 октября 2016 г. в 17:39
добавить комментарий |

Альтернативный ответ

Если две раскладки клавиатуры не отличаются многими символами, вы можете добавить Alt-модификаторы для иностранного языка (скажем, , стандартные символы макета США на слое Alt немецкой клавиатуры) с помощью утилиты Например, AutoHotKey или аналогичный.

Или создайте раскладку для ОС , что является более правильным способом сделать это.

  • никогда не нужно переключаться и задаваться вопросом, какой язык активен (может сильно отвлекать).
  • вы можете часто обращаться к слою Alt, и это замедляет ваш поток.

Для некоторых европейских языков вместо слоя можно перемещать символы навсегда.

Например, [] и { } на комбинации Alt/Shift из () и [] ;: ‘»на клавиши рядом с üäö, что позволяет вам сохранить почти нормальную американскую раскладку для кодирования и освободить место для символов ваших языков в местах, где они обычно находятся. p>



Windows 7 постоянно меняет настройки языка (клавиатуры)

Я использую Windows 7 Ultimate в сети Windows. Мои настройки по умолчанию — датский язык, датская раскладка клавиатуры, но английский системный язык. У меня установлена ​​только датская раскладка клавиатуры (в текстовых службах и языках ввода).

Однако на экране входа в систему я могу выбрать датский и английский, но все, что я выберу, Windows 7 меняет язык системы (и клавиатуры макет!) на английский (США). Поскольку это настройка для каждого приложения, я должен изменить настройку языка (языковая панель на панели задач)

Где это можно изменить в масштабах всей системы и на постоянной основе?


16

У меня была такая же проблема меняя регионы на себе.

Я щелкнул правой кнопкой мыши значок клавиатуры в правом нижнем углу панели задач и снял флажок «автоматическая настройка».

Французский снимок экрана:

Улучшите этот ответ
отредактировал 18 авг. в 10:03
StackzOfZtuff
1,28911 gold badge1111 silver 2323 бронзовых знака
ответ дан 30 янв.15 в 1:04
  • Не знаю, почему это не дает больше голосов … просто и именно то, что нужно — freefaller 9 января ’16 в 9:29
  • @ user413734 — Где именно вы видите «Автоматическая настройка»? Спасибо. — nsandersen 19 апр 2016, 09:29
  • @nsandersen Сверните языковую панель, если она у вас есть. Щелкните правой кнопкой мыши на клавиатуре ttom справа, на панели задач. Нажмите автонастройка. См. Изображение (на французском) imgur.com/2N59XpF — David G, 22 июня 2016, 18:09
добавить комментарий |

У меня была такая же проблема, когда он менял регионы на мне.

Я щелкнул правой кнопкой мыши значок клавиатуры в в правом нижнем углу панели задач и снят флажок «Автоматическая настройка».

Французский снимок экрана:


8

Откройте Регион и языки в Панели управления и сделайте следующее:

Нажмите Клавиатуры и языки и нажмите Изменить клавиатуру …

Отсюда вы можете изменить язык ввода по умолчанию на датский .

Или вы можете полностью удалить клавиатуру США .

Выполнение любого из этих действий Это может привести к тому, что вы сможете использовать только датскую клавиатуру вместо того, чтобы менять ее для каждого приложения, поскольку она делает ее общесистемной по умолчанию.

Улучшите этот ответ
ответил 30 июня ’11 в 16:48
  • 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
добавить комментарий |

Откройте Регион и языки в Панели управления и сделайте это:

Откройте вкладку Клавиатуры и языки и нажмите Сменить клавиатуру …

Отсюда вы можете изменить язык ввода по умолчанию на датский .

Или вы можете полностью удалить клавиатуру США .

Выполнение любого из этих действий должно привести к тому, что вы сможете использовать только датскую клавиатуру вместо того, чтобы менять ее для каждого приложения. поскольку он делает его общесистемным по умолчанию.


5

Лучшее решение (при условии, что вы хотите иметь доступ к более чем одной клавиатуре, что я и сделал) — это перейти в Панель управления, Клавиатуры и языки/дополнительные настройки.

И измените сочетание клавиш для переключения клавиатуры с Ctrl / Shift на «Нет»!

Все время я тоже думал, что он меняется с Eng на Fr на «случайной» основе. Но это было вовсе не случайно: я всегда использую сочетания клавиш, и одно из моих любимых — Ctrl + Shift + Tab для перехода к предыдущей вкладке в Chrome.

Обнаружил конфликт ярлыков при проверке чьего-либо предложения войти в панель управления. Вот тогда я увидел проблему. Как только я отключил сочетание клавиш для смены языка (не особо важно), у меня больше никогда не было проблем. Случайно или иначе! Тайна раскрыта!

Улучшите этот ответ
отредактировано 24 сен ’12 в 04:57
Сатьяджит Бхат ♦
59.4k3232 золотых знака169169 серебряных знаков258258 бронзовых значки
ответил 24 сен ’12 в 2:15
  • Это помогло мне, спасибо! Обратите внимание, что вы все еще можете переключать раскладки клавиатуры с помощью Win + Space. — Робин 18 окт. ’17 в 11:35
добавить комментарий |

Лучшее решение (при условии, что вы хотите иметь доступ к более чем одной клавиатуре, что я и сделал) — зайти в Панель управления, Клавиатуры и языки/дополнительные настройки.

И измените сочетание клавиш для переключения клавиатуры с Ctrl / Shift на «Нет»!

Все время я тоже думал, что он меняется с Eng на Fr на «случайной» основе. Но это было вовсе не случайно: я всегда использую сочетания клавиш, и одно из моих любимых — Ctrl + Shift + Tab для перехода к предыдущей вкладке в Chrome.

Обнаружил конфликт ярлыков при проверке чьего-либо предложения войти в панель управления. Вот тогда я увидел проблему. После того, как я отключил сочетание клавиш для смены языков (не страшно), у меня больше никогда не было этой проблемы. Случайно или иначе! Тайна раскрыта!


2

Перейдите в Панель управления> Регион и Языки> вкладка Клавиатуры и языки> Смените клавиатуры и удалите те, которые вам не нужны.

Улучшите этот ответ
ответил 30 июня ’11 в 13:40
добавить комментарий |

Перейдите в Панель управления> Регион и языки> вкладка Клавиатуры и языки> Смените клавиатуры и удалите те, которые вам не нужны.


1

У меня была такая же проблема: My KB продолжал переключаться между клавиатурой США и Великобритании , хотя у меня не было установлено UK KB. Мне удалось решить эту проблему, добавив британскую клавиатуру, а затем удалив ее. Языковая панель исчезла, и мой вводимый КБ теперь остается как США..

Улучшите этот ответ
ответил 04 окт., В 16:26
  • 1
    Спасибо ты! После всех вышеперечисленных ответов этот наконец сработал; Думаю, окна все еще глючат после всех этих лет. — эпоха 13 фев ’18 в 8:34
добавить комментарий |

У меня была та же проблема: моя KB продолжала переключаться между клавиатурами США и Великобритании , хотя я этого не делал не установлен UK KB. Мне удалось решить эту проблему, добавив британскую клавиатуру, а затем удалив ее. Языковая панель исчезла, и мой входной КБ теперь остается как США.


1

Это самая досадная ошибка, и она по-прежнему случается с подлинно новым компьютером 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

Улучшите этот ответ
отредактировал 03 февраля ’20 в 21:18
ответил 15 января ’14 в 16:47
добавить комментарий |

Это самая досадная ошибка, и она по-прежнему случается с подлинно новым компьютером 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


1

Используйте 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 сочетание клавиш с переключением языка в меню дополнительных настроек клавиш, изменив оба параметра в Изменить последовательность клавиш на Не назначено

Улучшите этот ответ
ответил 01 апр. ’20 в 20:13
  • Полный список языковых кодов находится здесь. — 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) Пожалуйста, измените также переменные в конце кода, я отметил, где вам нужно это сделать.

Также лучше удалить сочетание клавиш по умолчанию для переключения языка в меню дополнительных настроек клавиш, изменив оба параметра в Изменить последовательность клавиш на Не назначено


0

Я нашел решение, которое сработало для меня. Проблема заключалась в том, что у меня был установлен только Дворжак в разделе «Установленные службы», и, поскольку локаль компьютера была установлена ​​на США, он продолжал использовать это значение по умолчанию. Как только я добавил США к установленным службам и установил Дворжак в качестве «языка ввода по умолчанию», он начал работать.

В вашем случае изменение языкового стандарта системы на датский может решить вашу проблему. В окне «Регион и язык» (первое изображение Тиаго) щелкните вкладку «Администрирование», затем нажмите «Изменить языковой стандарт системы» и выберите соответствующий вариант из списка.

Я не знаю, желательно ли это исправление для вас, но готово. Я действительно хотел бы, чтобы это было не так сложно; У меня нет этой проблемы на моем Mac … 😉

Улучшите этот ответ
ответил 06 июня ’12 в 17:45
добавить комментарий |

Я нашел решение, которое сработало для меня. Проблема заключалась в том, что у меня был установлен только Дворжак в разделе «Установленные службы», и, поскольку локаль компьютера была установлена ​​на США, он продолжал использовать это значение по умолчанию. Как только я добавил США к установленным службам и установил Дворжак в качестве «языка ввода по умолчанию», он начал работать.

В вашем случае изменение языкового стандарта системы на датский может решить вашу проблему. В окне «Регион и язык» (первое изображение Тиаго) щелкните вкладку «Администрирование», затем нажмите «Изменить языковой стандарт системы» и выберите соответствующий вариант из списка.

Я не знаю, желательно ли это исправление для вас, но готово. Я действительно хотел бы, чтобы это было не так сложно; На моем Mac этой проблемы нет … 😉

Оцените статью
logicle.ru
Добавить комментарий