Я столкнулся с воспроизводимой ошибкой, которая для меня не имеет смысла. Надеюсь, кто-то знает больше о внутренних элементах ввода клавиатуры под Windows (я использую Windows 7) и могу указать мне в правильном направлении, как его решить. Теперь, когда он стоит, я не знаю, с чего начать.Как языковая панель (язык ввода) влияет на клавиатурные крючки?
Мое приложение создает глобальный крючок клавиатуры, используя библиотеку . Это работало отлично для меня, но я быстро получил сообщения об ошибках от людей, использующих разные языки ввода на клавиатуре. Когда они пишут буквы с акцентами, например. ë и ê, они отображаются как ¨¨e и ^^ e соответственно. This bug is also reported on the library's website, но еще не разрешен.
Чтобы попытаться воспроизвести ошибку, я установил альтернативный язык ввода «Голландский (Бельгия)» рядом с моим существующим «Английский (США)». После некоторого поворота я обнаружил следующее:
Ошибка не возникает, если приложение, устанавливающее крючок, имеет фокус, а язык установлен на «Английский (США)». Запись в любом другом приложении (например, блокнот) и использование «голландского (Бельгия)» для написания специальных символов. Ошибка возникает, когда приложение, которое устанавливает крючок, имеет фокус, а язык установлен на «голландский (Бельгия)».
Я ищу любую подсказку, как они связаны друг с другом. Возможно, мне нужно ввести некоторые дополнительные проверки в библиотеке клавишной клавиатуры? source code of the keyboard hook is available on line.