Как получить звук бузера???

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Как получить звук бузера???

Сообщение Vova_2581 » 15.10.2019 (Вт) 14:21

На каждой материнской плате есть такая маленькая «пищалка», которая сообщает нам сигналы BIOS. Так вот, используя функцию ядра – Beep...
Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Можно получить из нее звук нужной частоты и длительности. На XP все прекрасно работало, а вот на Win 7 эта функция отправляет звук уже не в бузер, а зачем-то через звуковой кодек на динамики.
Ну и, соответственно, получаем черт знает что. Подскажите, пожалуйста, как на Win 7 получить звук бузера???
Код: Выделить всё
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Private Sub Form_Load()
Beep 380, 30
Beep 550, 30
Beep 1174, 30
End Sub

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: Как получить звук бузера???

Сообщение bon818 » 15.10.2019 (Вт) 17:34

Проверить не могу, но знаю что есть еще FUNCTION MessageBeep "USER32.DLL"

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как получить звук бузера???

Сообщение Vova_2581 » 15.10.2019 (Вт) 21:07

bon818 писал(а):FUNCTION MessageBeep "USER32.DLL"

Эта функция не имеет отношения к бузеру, а воспроизводит стандартные системные звуки, назначаемые при помощи панели управления в системе и опять-таки через динамики. А меня интересует внутренний динамик или бузер.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как получить звук бузера???

Сообщение Vova_2581 » 15.10.2019 (Вт) 22:30

А вот... нашел ответ: Не работает BEEP в Win7 x64
(цитаты)
"в Windows 7 x64 переписали драйвер BEEP.sys так, чтобы он никогда не выводил звук на спикер
а перенаправлял на звуковуху".
...
"в комменте предлагали какое то решение но оно не работает windows 7 не смогло распознать.
то есть это решение (которое там в обсуждениях) и замена драйвера как часто советуют на windows 64 абсолютно не работает
я проверял".

Печально. :cry: На сим вопросов больше не имею.

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как получить звук бузера???

Сообщение Teranas » 17.10.2019 (Чт) 14:50

Кому нужен этот BEEP в 2019 году. Я им пользовался под DOS, тогда ещё был смысл.
Ты под BIOS что-то делаешь на VB6? Ужас.
С уважением, Андрей.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как получить звук бузера???

Сообщение Хакер » 17.10.2019 (Чт) 17:06

Teranas писал(а):Кому нужен этот BEEP в 2019 году.

Кому угодно. Причём тут BIOS? Допустим, компьютер без колонок (и даже монитора) управляет станком или кондиционированием воздуха. И должен подавать какой-то сигнал в случае сбоя.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как получить звук бузера???

Сообщение Vova_2581 » 18.10.2019 (Пт) 12:22

Вот... вот... Хакер абсолютно прав!
Бывает, что нужно простым сигналом сообщить пользователю о некой проблеме, обратить его внимание и быть уверенным, что в большинстве случаев (как правило бузер есть везде на всех МВ) он это услышит. А тут получается Вам нужно сообщить сигналом пользователю... а у него колонки... звук на минимуме, да еще может быть в колонки включены наушники - так вообще ж-(|)-па! Вся схема рушится. Зачем MS так сделали?? Жестокие! Раньше все было хорошо, а они все испортили переписав beep драйвер. За такое нужно расстреливать! :lol:

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как получить звук бузера???

Сообщение Vova_2581 » 20.10.2019 (Вс) 1:23

P.S.
Мне кажется, что я должен извинится перед MS за то, что "приговорил" их к расстрелу. Извините, погорячился... :oops:
Прочел вот такую статью из MSDN.
В ней говорится о том, что все дело в неком чипе 8254 на старых MB с таймером, который, собственно, и реализовывал этот самый beep. Производители MB отказались ее использовать в своих новых релизах. Причина не поддержи beep оказалась аппаратной. Поэтому MS переписали драйвер.

(цитата - перевод Remarks)
"Давным-давно все компьютеры ПК имели общий программируемый чип 8254 с интервальным таймером для генерации примитивных звуков. Функция Beep была написана специально для того, чтобы издавать звуковой сигнал на этом оборудовании.

С тех пор звуковые карты стали стандартным оборудованием практически на всех ПК. Поскольку звуковые карты стали более распространенными, производители начали удалять старый чип таймера с компьютеров. Чипы также были исключены из дизайна серверных компьютеров. В результате Beep не работает на всех компьютерах без чипа. Это было нормально, потому что большинство разработчиков перешли к вызову функции MessageBeep, которая использует любое звуковое устройство по умолчанию вместо чипа 8254.

В конечном итоге из-за отсутствия аппаратного обеспечения для связи поддержка Beep была прекращена в Windows Vista и Windows XP 64-Bit Edition.

В Windows 7 звуковой сигнал был переписан для передачи звукового сигнала на звуковое устройство по умолчанию для сеанса. Обычно это звуковая карта..."

Finita la Commedia. :(

Одно непонятно: тем не менее, когда я включаю свой ПК я слышу короткий beep от BIOS. Как же это происходит без чипа 8254??? :roll:

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Как получить звук бузера???

Сообщение Mikle » 20.10.2019 (Вс) 8:34

Vova_2581 писал(а):все дело в неком чипе 8254 на старых MB с таймером, который, собственно, и реализовывал этот самый beep. Производители MB отказались ее использовать в своих новых релизах.

То есть есть мамки, которые не сигналят биппером после BIOS теста? Что-то не встречал, может внимания не обращал?

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как получить звук бузера???

Сообщение Vova_2581 » 20.10.2019 (Вс) 10:36

Mikle писал(а):То есть есть мамки, которые не сигналят биппером после BIOS теста? Что-то не встречал, может внимания не обращал?

Да нет... Вы все правильно заметили, таких мамок нет, разве что вообще без бузера, Вы просто немного не дочитали до конца мой пост. У меня такой же вопрос... именно этот факт и непонятен. :scratch: Может кто знает ответ?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как получить звук бузера???

Сообщение iGrok » 22.10.2019 (Вт) 1:09

У меня нет ответа, но, например, как вам такой вариант объяснения?

Оставили просто фиксированную пьезопищалку убрав полноценный генератор частоты. POST тупо дёргает контакт для сигнализации, а старого интерфейса с генерацией частоты и длительности уже нету, соответственно и работать с ним нельзя.

P.S. а вообще такие мамки есть, и их много. Вместо бипера - пара контактов на мамке, и бипер валяется в комплекте. Не подключишь - не будет пищать.
label:
cli
jmp label

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как получить звук бузера???

Сообщение Vova_2581 » 22.10.2019 (Вт) 9:38

iGrok писал(а):Оставили просто фиксированную пьезопищалку убрав полноценный генератор частоты. POST тупо дёргает контакт для сигнализации, а старого интерфейса с генерацией частоты и длительности уже нету

Мне тоже кажется, что это самый логичный и наиболее вероятный ответ. Поддерживаю!.. :)

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как получить звук бузера???

Сообщение ger_kar » 22.10.2019 (Вт) 18:19

iGrok писал(а):У меня нет ответа, но, например, как вам такой вариант объяснения?Оставили просто фиксированную пьезопищалку убрав полноценный генератор частоты. POST тупо дёргает контакт для сигнализации, а старого интерфейса с генерацией частоты и длительности уже нету, соответственно и работать с ним нельзя.
Эту версию вполне себе можно проверить. Достаточно установить на комп например Windows XP и попробовать побибикать. У меня комп 10 летней давности и Windows XP и на моём компе BEEP работает так как и задумано изначально.
iGrok писал(а):P.S. а вообще такие мамки есть, и их много. Вместо бипера - пара контактов на мамке, и бипер валяется в комплекте.
Я честно сказать по другому и не встречал. За всю свою IT'шную карьеру мне не разу не попадался стационарный комп, на котором бипер был бы прямо на материнке. Обычно он (бипер) либо болтается на проводе подключенном к разъему, либо идет в составе кейса и подключается через тот же разъем, либо его вообще нет. И только на ноутбуках он пришпандорен прямо к плате.
Бороться и искать, найти и перепрятать

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как получить звук бузера???

Сообщение Vova_2581 » 23.10.2019 (Ср) 13:15

ger_kar писал(а):У меня комп 10 летней давности и Windows XP и на моём компе BEEP работает так как и задумано изначально.

Интересно это проверить на современных мамульках с Win XP... Как нибудь психану и вернусь к XP по-BEEP-BEEP-кать чуток - душу отвести. :)

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как получить звук бузера???

Сообщение ger_kar » 23.10.2019 (Ср) 14:07

Vova_2581 писал(а):Интересно это проверить на современных мамульках с Win XP... Как нибудь психану и вернусь к XP по-BEEP-BEEP-кать чуток - душу отвести.
А интересно, что будет если установить Windows XP на виртуалку и по бибипкать.
Бороться и искать, найти и перепрятать

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как получить звук бузера???

Сообщение Vova_2581 » 24.10.2019 (Чт) 20:26

ger_kar
Трудно сказать... нужно будет как-нибудь попробовать.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Как получить звук бузера???

Сообщение Mikle » 24.10.2019 (Чт) 20:42

В DosBox довольно натурально бибикает, хоть и через колонки.
А в QBasic для этого все условия.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как получить звук бузера???

Сообщение Хакер » 26.10.2019 (Сб) 7:30

ger_kar писал(а):А интересно, что будет если установить Windows XP на виртуалку и по бибипкать.

Что интересного? Это будет всецело зависеть от реализации бипера в виртуалке. То есть в каждой программе виртуализации результат будет свой. Где-то будет вывод сигнала через аудиоустройство, а где-то виртуалка окажется посредником к системной Beep-функции. Если на родительской машине она не работает как надо, то и вызов из виртуалки будет обречён работать не как хочет автор.

Вообще, если вся проблема в том, что переделали драйвер, то единственное решение — написать свой альтернативный драйвер, подгружать его из своей программы (все антивирусы или утилиты из комплекта SysInternals делают это) и разговаривать с ним. Слать ему команду, а он уже своим ядерным кодом будет дёргать классический пьезобуззер, если он, конечно есть. Других решений нет. Хоть из кожи лезь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как получить звук бузера???

Сообщение Teranas » 26.10.2019 (Сб) 13:00

На старых машинах пищалка обычно всегда внешняя или динамик, или пластины.
Я их всегда вырывал, доставала эта пищалка, это к тому, что не на всех машинах этот BEEP будет работать и возиться с ним нет необходимости, если только для узкого железа как и писал Хакер.
С уважением, Андрей.

sosed213
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 206
Зарегистрирован: 13.11.2007 (Вт) 21:19
Откуда: Омск

Re: Как получить звук бузера???

Сообщение sosed213 » 28.05.2020 (Чт) 21:29

На современных MB, "бузером" можно управлять из под ОС, с нужной частотой и длительностью сигнала. Даже мелодии можно воспроизводить.
В системе ubuntu server, прописывал скрипт воспроизведения короткой мелодии через "бузер", при подключении принтера по usb (не спрашивайте зачем).

Это говорит о том что программно это возможно.
Как уже было сказано выше, нужен специальный драйвер.
Не могу сказать что знаю все, но и за дурака прошу меня не считать.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList