Хоткеи некорректно воспринимают ALT Gr

Семён Закрыто

Нажимаю привычный хоткей для любителей раскладки Чистова - ALTGR + х для получения квадратной скобки.
Получаю переход в начало метода.
В настройках в поле ввода хоткея ввожу эту же комбинацию и вижу 2 позиции: вставку квадратной скобки и переход в начало метода

Просится или принятие кнопки как правый АЛЬТ, а не как CTRL + ALT.
Попробовал несколько знакомых программ и все без проблем показали нажатие ПРАВОГО АЛЬТА.
Если написано в хоткее ALT - пусть будет альт - не важно правый или левый, если выбирать не даёт.

Комментарии

tormozit
#1, ред. 23 ноября 2025 23:40

Про CTRL + ALT поясни подробнее способ воспроизведения проблемы. Куда надо кликнуть и какие клавиши нажать и в какой момент появляется CTRL+ALT.


Семён
#2, 24 ноября 2025 09:44

Ставим раскладку Чистова - вечный спутник 1С-ника.
Там есть вставка "[" и "]" по нажатию на ПРАВЫЙ альт + х и ъ.
В ТК в настройках нет деления на правый или левый альт.
Но есть хоткей для перехода к началу метода - ctrl+alt+OemOpenBracket.
Далее в модуле нажимаем привычную для пользователей раскладки вставку квадратной скобки и..
И получаем переход в начало метода, хотя в настройках указано CTRL+ALT и никакого правого альта отдельно там нет.
Мне критично мешает работе.
В других программах такого не наблюдается - многие понимают различие между правый альт и контрол+альт.


tormozit
#3, 24 ноября 2025 12:05

Теперь понял. Проблема действительно есть. Причем еще и CTRL залипает, если нажать правые CTRL+ALT+[ при активной команде "Перейти к началу..." Турбоконфа.


bolsun
#4, 24 ноября 2025 12:51

Логи будут?
У меня и правый и левый Alt c Х и Ъ вставляет квадратные скобки.


bolsun
#5, 24 ноября 2025 13:04

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


bolsun
#6, ред. 24 ноября 2025 17:04

(6) неправильно написал. В общем итоговая информация:
Поведение почему-то меняется, то работает нормально, то AtlGr определяется неправильно.
Некоторые пункты информации были неточные - обновлю позже.


bolsun
#7, 24 ноября 2025 16:29

Теоретически можно сделать опцию - игнорировать правый альт, но тут вопрос к автору заявки, нужно ли это, т.к. в этом случае он не сможет использовать правый альт для вызова команд ТурбоКонф.


bolsun
#8, ред. 24 ноября 2025 18:01

(6) пока похоже здесь работает комбинация нескольких факторов

  • То, что на скриншоте выводится команда Перейти к началу/концу при просто ALT+OemOpenBrackets - баг фильтра
  • Иногда из-за бага дожатия клавиш в случае AltGr залипает Control
  • Срабатывание скриптов Перейти к началу/концу следствие бага что залипает Control. Причем залипает не сама клавиша, а состояние модификатора и оно не сбрасывается сразу даже путем принудительного нажатия отжатия клавиш. Как оно сбрасывается я пока не понял, но через какое-то время пропадает.
  • Поэтому исправление этих двух багов - должно решить проблему, а раскладка Чистова должна будет работать при отключении комбинаций Alt+Х/Ъ в Настройках.


bolsun
#9, ред. 24 ноября 2025 18:30

(8) выяснил, что в случае залипания для меня помогает переключение раскладки Alt+Shift с предварительным нажиманием на все модификаторы по отдельности..


bolsun
#10, 24 ноября 2025 23:27

(2) Семён, (3) tormozit,

6.6.9460.1492

Версия для ознакомления, рекомендуется распаковать в отдельную папку

  • Улучшена поддержка правого Alt (AltGr), исправлены проблемы с залипанием при вызове комбинаций с помощью AltGr.
  • Исправлена ошибка фильтра в Настройках, Команды скриптов, при поиске по комбинации клавиш, когда в отбор попадали другие команды.

https://disk.yandex.ru/d/uFvTMZheZhxZZg


bolsun
#11, 26 ноября 2025 23:57

bolsun изменил статус на Закрыто


Семён
#12, 27 ноября 2025 23:37


Создал переменную для массива, попытался нажать вставку открытия квадратной скобки через раскладку чистова (альт х)
Получил вместо скобки то, что на экране.
В настройках тоже нажал правый альт и по прежнему ctrl-alt показывает
Семён изменил статус на Открыто


bolsun
#13, 27 ноября 2025 23:42

(12) Семён, лог будет когда-нибудь?


Семён
#14, 27 ноября 2025 23:45

Ссылка скрыта
Не вопрос


bolsun
#15, ред. 27 ноября 2025 23:49

(14) сейчас не залипает больше контрол при Ctrl+Х/Ъ? @tormozit у тебя вроде залипал, можешь проверить?


Семён
#16, 27 ноября 2025 23:50

Залипает. В браузер переходишь ответить, а вместо скрола - масштаб меняется


bolsun
#17, ред. 27 ноября 2025 23:56

(16) Семён, попробуй сделать следующее
для чистоты эксперимента обновиться на текущую 6.6, в Настройках Разработчикам - включить Получать тестовые версии и проверить обновления.
Снять все залипания, понажимав модификаторы и попереключав раскладки Ctrl+Shift, Alt+Shift.
Перезапустить программу.!!!
Убедиться что залипания нет, вызвать Альт+Х, если сразу же сработает скрипт перехода. Снять лог. Если нет, то после первого неправильного срабатывания.


bolsun
#18, 27 ноября 2025 23:57

@tormozit, вопрос по залипанию остается, есть или нет?


Семён
#19, 28 ноября 2025 00:03

(17) bolsun, обновился, перезапустился.
Проверил залипания на браузере, покнопал переключение раскладки.
Вставляет по прежнему процедуру вместо скобки.
Но залипать вроде перестало.
Лог прикладываю
Ссылка скрыта


tormozit
#20, 28 ноября 2025 00:03

(18) bolsun, у меня залипания теперь нет.


bolsun
#21, 28 ноября 2025 00:06

Хорошо, как минимум нет залипания, т.к. оно помимо всего вызывалось неправильной работой скрипта Переход к началу метода, который не дожидался закрытия окна Процедуры и функции.
Осталось понять, почему вызывается скрипт, а не команда вставки символа.
@tormozit, у тебя Alt+Х/Ъ вставляет символ?


bolsun
#22, 28 ноября 2025 00:08

(19) Семён, можешь включить в Настройках - Разработчикам опцию "Показывать нажатия клавиш" и нажать RMenu (правый альт) что будет? А потом RMenu + Х


Семён
#23, 28 ноября 2025 00:13

Оно продолжает перехватывать и без конфигуратора ((((
Словами не описать, надеюсь лог покажет
нажал несколько раз просто альт - получил отдельно окно с нажатием контрола, причём ЛЕВОГО.
Поставь чистова раскладку - будет проще понять , что происходит.
От неё не откажусь, так как и в других местах ею пользуюсь
Ссылка скрыта


bolsun
#24, ред. 28 ноября 2025 00:18

(23) Семён, дело не в раскладке Чистова (скорее всего).
Мне нужно разово понять, что выдает уведомление при нажатии правого альт и альт + Х
Сделать скриншот.
Потом можно отключить эту отладочную функцию.


bolsun
#25, 28 ноября 2025 00:20

(24) bolsun,

дело не в раскладке Чистова (скорее всего).

написал и задумался, а как отправляются символы с помощью этой раскладки.


bolsun
#26, 28 ноября 2025 00:20

(24) ее потом можно будет удалить? Мне не нужна лишняя раскладка.


Семён
#27, 28 ноября 2025 00:27

(26) bolsun, да. потом можно удалить.
завтра видео запишу. скрин не даёт сделать , так как окна мелькают


bolsun
#28, ред. 28 ноября 2025 00:33

(27) Семён, и ответь пожалуйста на (7).Игнорирование программой RMenu решит проблему?


bolsun
#29, 28 ноября 2025 00:36

Новые данные. Обнаружил, что поведение разное на русской и английской раскладке. На английской RMenu срабатывает как RMenu, на русской как LControl + RMenu.


bolsun
#30, 28 ноября 2025 00:45

Причина в том, что русская раскладка в Windows использует правый Alt как AltGr, то есть «Right Alt = Ctrl+Alt», а английская (US) — как обычный правый Alt без добавочного Ctrl.[1][2]

Что именно происходит

  • В некоторых раскладках (русская, многие «international») правый Alt по настройке «Right Alt treated as Ctrl+Alt (AltGr)» генерирует сразу два модификатора: Ctrl и Alt.[1]
  • В таких условиях любой фреймворк (включая WinForms) видит это как нажатые RMenu и LControlKey одновременно, поэтому в обработчиках событий получается RMenu+LControlKey.[3][1]
  • В стандартной английской (US) раскладке правый Alt не настроен как AltGr, поэтому система передаёт его как обычный RMenu без добавочного Control, и в событии виден просто RMenu.[2][1]

Итого: разница не в .NET/WinForms, а в самом описании раскладок в Windows — русская трактует правый Alt как AltGr (Ctrl+Alt), английская — как обычный правый Alt.[2][1]


bolsun
#31, ред. 28 ноября 2025 01:20

В общем, как я понимаю определить простыми способами - что было нажато на русской раскладке AltGr или левый контрол + RMenu нет возможности (есть способы с драйверами и т.д. - нам не подходят).
Поэтому возможные варианты:

  1. Опция Игнорировать клавишу RMenu (все нажатия в которых она фигурирует будут игнорированы программой).
  2. Трактовать все LControl + RMenu как просто правый Alt.

Я за первый вариант.


Семён
#32, 28 ноября 2025 08:52

(31) bolsun, Давай пробовать.
Посмотрел в своих программах ещё раз - действительно, с переключением на русский тоже при нажатии правого альта срабатывает и левый контрол.
Надо попробовать отключить реакцию на правый и посмотреть, что получится.
К тестам готов - тут сложностей нет


Семён
#33, 28 ноября 2025 08:54

Не знаю - нажимает ли кто-то правую пару контрол+альт.
Возможно, если таковые имеются - первый вариант им не подойдёт.
Тогда нужен третий вариант - принимать только парами - или оба слева или оба справа. Нажатия один слева, второй справа - вот такие не обрабатывать


bolsun
#34, ред. 28 ноября 2025 09:19

(33) Семён, вроде удалось разобраться с причиной залипания Control.
Также теперь AltGr трактуется всегда как правый Alt, поэтому должна срабатывать правильная комбинация Alt+Х\Ъ. В Настройках определение правого альт, также исправил и можно отключать/включать нужные комбинации.
Во всяком случае у меня сейчас все работает нормально.
Если проблема сохраняется нужен лог сразу после ее возникновения.

Update:
Версия не та, будет обновлена.


Семён
#35, 28 ноября 2025 10:01

Да - по уведомлению нажал скачать - она не запускается.
В ожидании обновки


bolsun
#36, 28 ноября 2025 10:59

(35) Семён, попробуй эту версию
6.6.9463.23031
https://disk.yandex.ru/d/XRPUNWQtrbwBUw


Семён
#37, 28 ноября 2025 11:33

Отлично - на русском перестало сбоить - закрываем
Семён изменил статус на Закрыто


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера