Как я могу сделать компьютер пищит в C #? - PullRequest
98 голосов
/ 26 ноября 2008

Как сделать так, чтобы внутренний динамик компьютера издал звуковой сигнал в C # без внешних динамиков?

Ответы [ 6 ]

181 голосов
/ 26 ноября 2008

В .Net 2.0 вы можете использовать Console.Beep ().

// Default beep
Console.Beep();

Вы также можете указать частоту и длину звукового сигнала в миллисекундах.

// Beep at 5000 Hz for 1 second
Console.Beep(5000, 1000);

Для получения дополнительной информации см http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx

136 голосов
/ 26 ноября 2008

Вы также можете использовать относительно неиспользованные:

    System.Media.SystemSounds.Beep.Play();
    System.Media.SystemSounds.Asterisk.Play();
    System.Media.SystemSounds.Exclamation.Play();
    System.Media.SystemSounds.Question.Play();
    System.Media.SystemSounds.Hand.Play();

Документация для этого звука доступна в http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx

21 голосов
/ 26 ноября 2008

Console.Beep

11 голосов
/ 26 ноября 2008

Попробуйте это

Console.WriteLine("\a")

6 голосов
/ 04 июля 2016

Подтверждено, что win7 и более новые версии (не менее 64 бит или оба) не используют системный динамик и вместо этого направляют вызов на звуковое устройство по умолчанию.

Таким образом, использование system.beep() в win7 / 8/10 не будет звучать при использовании внутреннего системного динамика. Но вы получите звуковой сигнал от внешних динамиков, если он доступен.

3 голосов
/ 31 октября 2017

Я только сталкивался с этим вопросом, когда искал решение для себя. Вы можете подумать о вызове системной звуковой функции, запустив кое-что из kernel32.

using System.Runtime.InteropServices;
        [DllImport("kernel32.dll")]
        public static extern bool Beep(int freq, int duration);

        public static void TestBeeps()
        {
            Beep(1000, 1600); //low frequency, longer sound
            Beep(2000, 400); //high frequency, short sound
        }

Это то же самое, что вы запускаете powershell:

[console]::beep(1000, 1600)
[console]::beep(2000, 400)
...