Я просмотрел несколько более ранних вопросов об этом, и лучший ответ, который я нашел до сих пор, выглядит примерно так:
(char) WinAPI.MapVirtualKey((uint) Keys.A, 2)
Однако это не работает двумя способами:
-
Он всегда возвращает заглавные буквы. Для
Keys.Aя ожидаю получить символa, а дляKeys.A | Keys.ShiftKeyя ожидаю получитьa; однако я, кажется, получаюaдля обоих. -
Похоже, что не учитываются раскладки клавиатуры. Например, для
Keys.OemMinusя всегда получаю символ-, даже если текущая раскладка клавиатуры - немецкая, где я ожидаю, что эта клавиша вернетß.
Какое правильное решение для этого?