Решение, вероятно, зависит от того, что вы имеете в виду, когда говорите, что события нажатия клавиш вверх / вниз для окон не достаточно быстрые. Они, безусловно, работают с разрешением менее миллисекунды - что значительно быстрее, чем у большинства людей - так чего же вы надеетесь достичь, читая ввод «быстрее»?
Вы уверены, что ваш цикл событий или код не только замедляют ответ?
Вы можете достичь аналогичных (идентичных?) Скоростей опроса DirectInput состояния клавиатуры, используя функции Windows GetAsyncKeyState / GetKeyState. Я не использовал последнюю версию DirectInput, но я уверен, что более ранние версии просто использовали те же события Win32 для состояния без опроса клавиатуры. Основное преимущество DirectInput заключается в том, что он обеспечивает общие абстракции для всех видов устройств ввода - он не предназначен для «быстрого» ввода с клавиатуры (что бы это ни значило).
Из собственной документации Microsoft видно, что ' Использование DirectInput для ввода с клавиатуры и мыши не рекомендуется ... '