Страница 1 из 1

При наборе клавиш слышны звуки - ступор при написании программы

Добавлено: 13 июн 2014, 11:20
MDCI
Пишу программу на С++ - цель которой воспроизвести действие "пианино". Но при нажатии клавиш слышны звуки. Можно ли это исправить. Существует ли какие-то программные или какие-то другие методы. Раньше писал на VB6 (несколько лет назад) - таких проблем не было.

Re: При наборе клавиш слышны звуки - ступор при написании программы

Добавлено: 13 июн 2014, 16:20
Romeo
Чем компилируешь и на какой операционной системе запускаешь?

Спикер пищит в том случае, если системный буфер клавиатурных кодов переполнен. Это часто случалось в DOS приложениях, где он был достаточно короткий, к тому же функции, подобные getch() его обрабатывали посимвольно, каждый раз возвращая управление в программу, что позволяло легко "забить" буфер нажатиями быстрее, чем программа их успеет обработать. Решить проблему множества одновременных нажатий можно было лишь перейдя на другой уровень обработки: считывая данные напрямую из клавиатурного буфера через прерывания и очищая его вручную.

Под Windows проблема видоизменилась и практически полностью потеряла воспроизводимость. Произошло это в первую очередь благодаря изменившемуся подходу к обработке нажатий клавиатуры. Нажатия начала обрабатывать операционная система, став посредником и вызывая у программы лишь обработчики сообщений. В таких условиях переполнения клавиатурного буфера стало возможно воспроизвести только при зависании всей операционной системы, так как во всех остальных случаях Windows грамотно и своевременно очищает буфер.

Re: При наборе клавиш слышны звуки - ступор при написании программы

Добавлено: 13 июн 2014, 18:25
MDCI
Компилятор - Visual C++ 2010
Система - Windows 7 SP1

может кто-то подскажет код или что-то такое

Re: При наборе клавиш слышны звуки - ступор при написании программы

Добавлено: 16 июн 2014, 12:36
Romeo
А как считываешь нажатия? Обрабатываешь WM_KEYDOWN?

Re: При наборе клавиш слышны звуки - ступор при написании программы

Добавлено: 16 июн 2014, 13:05
somewhere
Не пойму, о каких звуках речь? Может, воспроизводится системный звук "Стандартный звук"?
Фокус форме дать не пробовали?

Re: При наборе клавиш слышны звуки - ступор при написании программы

Добавлено: 17 июн 2014, 18:50
MDCI
"Считываю" нажатия через OnKeyDown
При запуске окно и так в фокусе.
При нажатии клавиши иногда слышен "Стандартный звук" - хотя должно быть слышно только нотные звуки