Здраствуй Алл...
Мож там настройки нужны какие.. у меня на win2000 prof все прикрасно пищит
используя функцию Beep(100,1);
а вот у юзеров на 98 не пищит
ка же так -- мож где громкость регулируется или что надо бы чтоб запищать?
Здравствуйте, xwoll, Вы писали:
X>Мож там настройки нужны какие.. у меня на win2000 prof все прикрасно пищит
X>используя функцию Beep(100,1);
X>а вот у юзеров на 98 не пищит
X>ка же так -- мож где громкость регулируется или что надо бы чтоб запищать?
Windows 95/98/Me: The Beep function ignores the dwFreq and dwDuration parameters. On computers with a sound card, the function plays the default sound event. On computers without a sound card, the function plays the standard system beep.
Здравствуйте, algol, Вы писали:
A>Здравствуйте, xwoll, Вы писали:
X>>Мож там настройки нужны какие.. у меня на win2000 prof все прикрасно пищит
X>>используя функцию Beep(100,1);
X>>а вот у юзеров на 98 не пищит
X>>ка же так -- мож где громкость регулируется или что надо бы чтоб запищать?
A>A>Windows 95/98/Me: The Beep function ignores the dwFreq and dwDuration parameters. On computers with a sound card, the function plays the default sound event. On computers without a sound card, the function plays the standard system beep.
и ЧТО ЖЕ ДЕЛАТЬ ?
MessageBeep — тоже не канала...
Здравствуйте, xwoll, Вы писали:
X>Здраствуй Алл...
X>Мож там настройки нужны какие.. у меня на win2000 prof все прикрасно пищит
X>используя функцию Beep(100,1);
Ну, не уверен я, что звук длительностью 1 миллисекунда с частотой 100 Гц можно услышать... Это ж где-то 20% полупериода синусоиды. А speaker даже не синусоиду генерит.
X>а вот у юзеров на 98 не пищит
X>ка же так -- мож где громкость регулируется или что надо бы чтоб запищать?
Ладно, теперь по теме. Для Windows 9x звук можно издавать, напрямую записывая в порты speaker-а. Я делаю так:
// В переменной nFreq - частота звука (440 - нота "ля" первой октавы
if( nFreq > 18 ) { // Не пауза...
nFreq = 0x1234DC / nFreq; // Константа взята из какой-то доки, сечас уже не помню
_asm {
mov ecx,nFreq
//set timer #3
mov al,182
out 43h,al
mov al,cl
out 42h,al
mov al,ch
out 42h,al
//enable speaker
in al,61h
or al,3
out 61h,al
}
}
Sleep( nDuration ); // Время ожидания (в миллисекундах)
// Выключить звук..
_asm {
in al,61h
and al,0fch
out 61h,al
}
Просто определяю версию операционки — если платформа NT, то использую стандартный Beep, если нет — вышеприведенный код.
С уважением,
Заливочкин Евгений