Сейчас я пытаюсь создать аналогичную функциональность, как в приложениях для голосового чата Push-To-Talk, но пока не смог найти для этого подходящих решений. Я не использую MFC или CLR.
Проблема довольно проста. Мое окно обычно должно быть не в фокусе (т. е. свернуто и т. д.), но мне нужно реагировать на нажатия клавиш (по сути, я даже не хочу знать, удерживается ли кнопка нажатой или нет). К сожалению, WM_KEYDOWN работает, только если окно находится в фокусе клавиатуры. Я знаю, что, например, Teamspeak использует для этого DirectInput, но я также знаю, что это определенно можно сделать и без него, что я бы очень предпочел.
Единственное другое решение, которое я мог бы заставить работать, — это опрос с помощью GetAsyncKeyState, но похоже, что это тоже далеко не хорошее решение. Если это вообще возможно, я бы предпочел использовать сообщения Windows.