Звук через внутренний динамик
http://vbkoders.net.ru/
В этой статье я расскажу вам о том, как выдавать звуковой сигнал через внутренний динамик. Для этого мы воспользуемся API функцией Beep. Ну что, перейдём к делу:
1. Создайте новый проект.
2. На созданную вместе с проектом форму добавьте две метки (lbl1, lbl2) , две горизонтальные полосы прокрутки (srlChastota и srlTime) и одну кнопку (cmdGen):
| Имя элемента управления: | Свойство: | Значение: |
|---|---|---|
| lbl1 | Caption | Частота звука: |
| lbl2 | Caption | Продолжительность звука: |
| srlChastota | Min | 37 |
| srlChastota | Max | 32767 |
| srlTime | Min | 0 |
| srlTime | Max | 10000 |
| cmdGen | Caption | &Сгенерировать сигнал |
После всех перечисленных действий форма должна выглядеть примерно так:

3 Добавьте следующий код:
Option Explicit
'Функция генерирует звуковой сигнал
Private Declare Function Beep Lib "kernel32"
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
'dwFred - частота звука
'dwDuration - продолжительность сигнала в миллисекундах
Private Sub cmdGen_Click()
'Генерируем звук
Beep srlChastota.Value, srlTime.Value
End Sub
Вот и всё! Вы создали программу для генерации звука из системного динамика.
Пример здесь.
Оставить комментарий
Оставлять комментарии могут только зарегистрированные пользователи.
Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.
Комментарии
1. Ден Зурин / 17 февраля 2008, 13:19:37

КГ/АМ

Во-первых, описание функции Beep есть в MSDN и любом справочнике по Win32 API. Какой смысл цитировать документацию? Вот если бы ты предложил что-нибудь свое... Например, то же самое средствами DirectX.
Во-вторых, функция Beep работает только в NT (2000, XP). В Windows 9x и ME функция Beep игнорирует частоту и продолжительность, воспроизводит стандартный звуковой сигнал. Поэтому ее никто особо и не использует.
2. stereo / 14 ноября 2005, 16:27:17

Ксожалению, не взлетело (((


