web-dev-qa-db-fra.com

Comment puis-je faire en sorte que l'ordinateur bipe en C #?

Comment faire retentir le haut-parleur interne de l'ordinateur en C # sans haut-parleurs externes?

99
a_hardin

En .Net 2.0, vous pouvez utiliser Console.Beep ().

// Default beep
Console.Beep();

Vous pouvez également spécifier la fréquence et la durée du bip en millisecondes.

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

Pour plus d'informations, consultez http://msdn.Microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx

184
a_hardin

Vous pouvez également utiliser le relativement inutilisé:

    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();

La documentation de ces sons est disponible dans http://msdn.Microsoft.com/en-us/library/system.media.systemsounds (v = vs.110) .aspx

139
kd7

Console.Beep

21
Barry Kelly

Essaye ça

Console.WriteLine("\a")

11
Chris Ballance

Il est confirmé que Win7 et versions plus récentes (au moins 64 bits ou les deux) dose n'utilise pas le haut-parleur système et au lieu de cela, ils acheminent l'appel vers le périphérique audio par défaut.

Ainsi, l’utilisation de system.beep() dans win7/8/10 ne sonne pas avec le haut-parleur interne du système. Mais vous entendrez des bips sonores provenant de haut-parleurs externes, le cas échéant.

6
kuma DK

Je suis juste tombé sur cette question en cherchant la solution pour moi-même. Vous pouvez envisager d'appeler la fonction bip système en exécutant des opérations 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
        }

C'est la même chose que si vous utilisiez PowerShell:

[console]::beep(1000, 1600)
[console]::beep(2000, 400)
3
Jakub Szumiato