SendInput
SendInput позволяет имитировать нажатия клавиш. У вас есть выбор идентификации ключей, используя коды виртуальных клавиш или коды сканирования (см. KEYBDINPUT.dwFlags ). Очевидно, DirectInput игнорирует коды виртуальных ключей, но обрабатывает коды сканирования.
Короче говоря, используйте SendInput с кодами сканирования, и DirectInput ответит.
Перехват
Инструментарий Interception имитирует нажатие клавиш с помощью драйвера режима ядра и некоторых вспомогательных функций пользовательского режима.
Есть некоторые проблемы с безопасностью. Поскольку это драйвер режима ядра с закрытым исходным кодом, вам необходимо полностью доверять автору. Даже если автор полностью заслуживает доверия, драйвер позволяет отслеживать, а также создавать входные данные, что открывает большую дыру в безопасности: любое непривилегированное программное обеспечение может использовать его для прослушивания, например, паролей повышения. Он также может блокировать ввод с клавиатуры, включая CTRL + ALT + DEL.
Комментарии на странице github предполагают, что она пока не работает в Windows 8.
Используйте его на свой страх и риск.