.Net WinForm System Beep на 64-битной ОС
Мое приложение должно подать звуковой сигнал при сбое проверки, чтобы его мог услышать пользователь (который может находиться на расстоянии нескольких футов). Я хотел бы использовать Console.Beep()
но это недоступно в среде x64 (см. примечания). Там могут быть или не быть динамики в / на компьютере, поэтому я не могу использовать System.Media.SystemSounds.Beep.Play()
,
Текущая целевая платформа представляет собой среду x86, но я бы хотел, чтобы приложение также могло работать в x64.
Есть ли способ сделать это или я должен просто сдаться?
Изменить: Добавлена ссылка на метод.
3 ответа
Звуковой сигнал был удален как встроенная функция со всех платформ x64 (поэтому, конечно, нет управляемой версии), существует проблема с подключением, которая требует ее возврата.
Мы используем другую хитрость для обнаружения серверов, мы извлекаем DVD-диск удаленно, и диск с открытым лотком - тот, который искали:)
[РЕДАКТИРОВАТЬ]
У Ларри Остермана есть отличная статья об этом: что случилось с драйвером звукового сигнала в Windows 7
Проигрывание одного из стандартных звуков окон может быть лучшим подходом. В следующей статье показано, как (это занимает всего пару строк):
http://msdn.microsoft.com/en-us/library/4y171b18(VS.100).aspx
Если вы хотите оставаться в рамках темы, вы можете проверить реестр Windows на наличие текущей звуковой схемы и воспроизвести звук, соответствующий вашим потребностям.
Вы можете использовать Console.Beep()
метод описан здесь: https://msdn.microsoft.com/en-us/library/8hftfeyw(v=vs.110).aspx
Убедитесь, что вы запускаете исполняемый файл от имени администратора (повышенные привилегии)