Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Не работет BEEP в Win7 x64 (http://forum.oszone.net/showthread.php?t=176329)

NORIO 22-05-2010 21:28 1418964

Не работет BEEP в Win7 x64
 
У меня есть таймер написанный на автоите. Когда он срабатывает проигрывается звуковой файл и одновременно пищит спикер.
Чтобы можно было услышать и в наушниках и без них.

Только что узнал что в Windows 7 x64 не поддерживается pc speaker его звук выводится на звуковуху.
А надо чтобы работал классический внешний системный динамик.


Причём надо что бы
на наушники подаются все звуки + сигнал таймера
а на пищалку только сигнал таймера

то есть как это обычно происходит в более старых системах (winXP)

Ищу решение как восстановить эту функцию или заменить чем-то.
Может возможно вывести на какой то отдельный канал звуковухи только этот сигнал?

Creat0R 22-05-2010 22:52 1419014

Цитата:

Цитата NORIO
Только что узнал что в Windows 7 x64 не поддерживается pc speaker его звук выводится на звуковуху »

Так а что ожидается тогда от AutoIt? если не поддерживается, значит так задуманно, нужно обращаться к Microsoft :)

Цитата:

Цитата NORIO
Ищу решение как восстановить эту функцию или заменить чем-то »

Есть хотя одна функция для отключения динамика, возможно он просто отключён?

Код:

_BeepSpeakerSetState(1)
Beep(500, 300)

Func _BeepSpeakerSetState($iState=0, $iPause=500)
    Switch $iState
        Case 0
            Run(@ComSpec & ' /c net stop beep & sc config beep start= disabled', '', @SW_HIDE)
        Case Else
            Run(@ComSpec & ' /c sc config beep start= system & net start beep', '', @SW_HIDE)
    EndSwitch

    Sleep($iPause)
EndFunc


NORIO 23-05-2010 10:21 1419182

Creat0R,
Спасибо.
Я выяснил что в Windows 7 x64 переписали драйвер BEEP.sys так чтобы он никогда не выводил звук на спикер
а перенаправлял на звуковуху.
статья по этому поводу.
http://blogs.msdn.com/larryosterman/...windows-7.aspx


Там в комменте предлагали какое то решение но оно не просто не работает но и windows 7 не смогло распознать.
то есть это решение (которое там в обсуждениях) и замена драйвера как часто советую на windows 64 абсолютно не работает
я проверял.

Остаются варианты:

1 либо вывести писк на отдельный канал звуковухи например только писк на басовый канал или rear канал
(или вывести звук на отдельное звуковое устройство, tv тюнер,модем, доп звуковуха)
+
обычный общий звук вместе с писком на наушники

но пока не вижу каких либо библиотек и приспособлений, ничего похожего на официальном форуме


2 эмулировать спикер дополнительным нестандартным устройством.
то есть абсолютно любым, хоть платкой какой то припаянной к COM порту, хоть динамиком PCI модема.
или pci плата какая то диагностическая с пищалкой, да хоть какая нибудь USB приблуда, я бы купил если б знал что.

Сейчас надо найти устройство и софт промежуточный к нему (если понадобится). Причём:

a) только нужно что то что возможно будет контролировать из скрипта
b) чтобы оно не было тормозным.


Время: 05:14.

Время: 05:14.
© OSzone.net 2001-