Я сейчас пытаюсь отправить персонажа.Поэтому я использую нативные методы GetKeyboardLayout и VkKeyScanExW, расположенные в user32.dll, чтобы получить код виртуальной клавиши (и состояние shift и control) для текущей раскладки клавиатуры из системы.После этого я отправляю этот виртуальный код ключа в приложение, используя собственный метод SendInput из user32.dll.
Все работает нормально, кроме знака евро.Когда я передаю этот символ в качестве параметра в VkKeyScanExW, он возвращает -1, что означает, что он не найден.На моей клавиатуре он расположен с помощью Ctrl + Menu + E (немецкая раскладка)
Теперь я предполагаю, что это происходит потому, что знак евро является знаком Unicode и не отображается в макете ascii.Я прочитал Sendinput также позволяет Unicode-режиме с использованием аппаратного скан-кода.Поэтому я надеюсь, что использование режима Юникода SendInput решит мои проблемы.Но я думаю, что мой код виртуальной клавиши - это не код аппаратного сканирования, поскольку диапазон Юникода шире.Где я могу найти пример того, как отправить символ Unicode (например, €) через SendInput в другой элемент управления / окно.MSDN и pinvoke.net не предоставляют полезных образцов.