Я исследовал дальше и посмотрел на другие ответы. Похоже, короткий ответ: нет!Windows одинаково обрабатывает Ctrl+Alt и AltGr .
Но есть взлом. По сути, мы не позволяем Windows обрабатывать привязки клавиш AltGr, а вместо этого используем сторонний инструмент, который знает разницу. Мы делаем это вручную для каждого ключа.
Этот хак не работает с " мертвыми ключами ", такими как ~ или ^.
,
Часть 1. Позвольте AutoHotKey преобразовать AltGr + Some Key в символы
AutoHotKey может различать AltGr и Ctrl+Alt. Он также может преобразовывать нажатия клавиш, например AltGr + 2, в один символ @
, прежде чем Windows применяет раскладку клавиатуры.
- Скачайте и установите AutoHotKey
- Создайте новый скрипт, т.е. простой текстовый файл с расширением
.ahk
- Для каждого символа, который вы хотите написать с помощью AltGr+BUTTON = CHAR, создайте такую строку:
<^>!BUTTON::SendInput {raw}CHAR
Пример: AltGr+2 = @ становится <^>!2::SendInput {raw}@
- Сохранить скрипт
Если вы хотите протестировать ваш скрипт, вы можете создать произвольное отображение, например <^>!t::SendInput {raw}tttt
. Дважды щелкните скрипт, чтобы применить его и проверить, если при вводе AltGr+t выдаст четыре т.
,
Часть 2. Уберите окна с дороги:
Мы хотим удалить все назначения AltGr+Any Key на их клавиатуре, чтобы Windows никогда не конвертировала их в символы.
Сначала нам нужно создать новую раскладку клавиатуры.
- Загрузите Microsoft Keyboard Layout Creator. Это простой инструмент, который позволяет изменять раскладку клавиатуры. (Ссылка на скачивание)
- Откройте инструмент и
File -> Load Existing Keyboard
и выберите раскладку клавиатуры.
- Выберите
File -> Save source as
и дайте ему новое имя.
- Отметьте
Alt+Ctrl (AltGr)
.
Возможно, вы захотите выбрать File -> Save as Image
чтобы записать исходные назначения.
- Удалите все назначенные ключи, щелкнув их, удалив символ, и нажмите кнопку
OK
Не очищайте мертвые ключи! (Серые). Проверьте все модификаторы, например, AltGr, Ctrl, Alt или нет!
- Перейдите в
Projet -> Propertie
и дайте ему достойное имя и описание.
- Сохраните его:
File -> Save Source File
чтобы вы могли редактировать его позже
- Настройка экспорта:
Project -> Build DLL and Setup Package
Затем нам нужно применить эту новую раскладку клавиатуры.
- Найдите экспортированные файлы установки в папке «Документы» и дважды щелкните
setup.exe
. Это установит вашу новую раскладку клавиатуры.
- Откройте настройку ввода, перейдя в
Control Pannel -> Change keyboards and other input methods -> Change keybords
- Нажмите кнопку
Add
выберите свою собственную клавиатуру и установите ее по умолчанию.
Вернитесь сюда и снимите стандартную клавиатуру, как только вы будете уверены, что все работает хорошо.
,
Часть 3: пусть AutoHotKey вступит во владение:
Теперь давайте приведем все в действие:
- Убедитесь, что ваша новая клавиатура выбрана в языковой панели задач, и AutoHotKey не работает свернутым в панели уведомлений.
- Попробуйте ввести свои специальные символы. Это не должно работать.
- Дважды щелкните по сценарию AutoHotKey. Так что запускает
- Попробуйте ввести специальные символы еще раз. Теперь это должно работать только с AltGr .
- Чтобы убедиться, что скрипт загружается при запуске 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/