Захват ввода с клавиатуры и последствия хуков
Я пишу программу VoIP, и одной из стандартных функций является функция "нажми и говори", то есть, удерживая нажатой клавишу, ты записываешь и отправляешь аудио. Ключ будет реагировать независимо от того, играете ли вы в видеоигру или находитесь в другом окне.
Мои вопросы;
- все программы VoIP явно используют клавиатурные хуки для достижения этой цели? Например, Ventrilo/ TeamSpeak/ Skype/ Mumble
- Я слышал, что зацепки клавиатуры подвергаются системной атаке, так как каждое сообщение с клавиатуры отправляется и приложению VoIP. Есть ли способ снизить стоимость, и насколько велика производительность? Моим приоритетом номер один в моем приложении является производительность и эффективность, низкое использование компьютерных ресурсов.
заранее спасибо
2 ответа
Есть ли способ снизить стоимость, и насколько велика производительность?
Падение производительности и стоимость прямо пропорциональны объему работы, выполняемой вашим кодом обработчика.
Если вы читаете документацию, там написано, что это некоторые из причин для этого (выделение мое):
- Мониторинг сообщений в целях отладки
- Обеспечить поддержку записи и воспроизведения макросов
- Обеспечить поддержку для клавиши справки (F1)
- Имитация мыши и клавиатуры
- Внедрить приложение для обучения на базе компьютера (CBT)
Я не знаю, что используют другие программы.
Используйте его и посмотрите, есть ли проблемы с производительностью. Вы, вероятно, предварительно оптимизируете на этом этапе. Я видел, что он используется в приложениях Windows на оборудовании Pentium I без заметного влияния.