C # - Console.Beep не работает в Windows Vista - PullRequest
6 голосов
/ 03 сентября 2010

Когда я пробовал Console.Beep() в Win Vista (64-битная версия), он просто не работал.Сам динамик в порядке, при запуске ПК он издает звуковой сигнал.Любой совет?Спасибо!

Ответы [ 4 ]

10 голосов
/ 03 сентября 2010

Это 64-битная Vista?

Console.Beep вызывает функцию API Beep , которая не поддерживается в 64-битной Vista.

Цитата: Windows Vista x64 и Windows XP 64-Bit Edition: Эта функция не поддерживается.

Возможно, вы сможете использовать MessageBeep вместо этого, если это нормально, если звуковой сигнал подается через динамики, а не прямо с материнской платы.См. здесь , чтобы узнать, как вызвать это из C #.

2 голосов
/ 03 сентября 2010

Как и все остальные, выкладывал колонку для ПК. Звуковой сигнал не поддерживается в 64x Windows Vista или XP и совсем не поддерживается в Windows 7. Вот сообщение в блоге от Microsoft, объясняющее, почему

http://blogs.msdn.com/b/larryosterman/archive/2010/01/04/what-s-up-with-the-beep-driver-in-windows-7.aspx

2 голосов
/ 03 сентября 2010

Метод Beep не поддерживается в Vista / XP x64. Я полагаю, у вас есть 64-битная ОС?

1 голос
/ 03 сентября 2010

Как предлагали другие, Console.Beep() не работает на 64-битных окнах, так как в документации указано . Вместо этого вы можете использовать следующий оператор, который издает звуковой сигнал (но не через Beep API):

// beep
System.Media.SystemSounds.Beep.Play();

Обходной путь первоначально найден здесь в MSDN Connect .

...