Я верю, что DirectInput может это сделать.Давным-давно у моей команды разработчиков было приложение для голосовой связи, в котором ключ «нажми и говори» может быть пойман нашим приложением, независимо от того, было ли другое приложение на переднем плане или нет.
Если сервер памяти работает правильномы использовали DirectInput с выделенным потоком, прослушивающим DInput, чтобы сигнализировать нашему дескриптору HEVENT.Когда четная нить просыпается, она спрашивает directinput, какая клавиша была нажата.Если это была наша горячая клавиша, мы отключили звук микрофона (и приглушили его при событии up).
Большинство документов DirectInput были взяты из MSDN.(Заменено XInput).Я понятия не имею, может ли xinput выполнить то же самое.Но если вы можете найти устаревший пакет DirectX SDK (например, DirectX 8 SDK), включенные документы должны иметь все необходимое для DirectInput.