Antworten:
In .Net 2.0 können Sie Console.Beep () verwenden.
// Default beep
Console.Beep();
Sie können auch die Häufigkeit und Länge des Pieptons in Millisekunden angeben.
// Beep at 5000 Hz for 1 second
Console.Beep(5000, 1000);
Weitere Informationen finden Sie unter http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx
Beep()
kann über externe Lautsprecher einen vollständigen Frequenzbereich hören . +1 für den internen Teil, das habe ich jedoch nie bemerkt.
Sie können auch das relativ unbenutzte verwenden:
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();
Die Dokumentation zu diesen Sounds finden Sie unter http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx
Die Lösung wäre:
Console.Beep
Versuche dies
Console.WriteLine("\a")
Es wird bestätigt, dass Windows 7 und neuere Versionen (mindestens 64 Bit oder beide) keine Systemlautsprecher verwenden und stattdessen den Anruf an das Standard-Audiogerät weiterleiten.
Die Verwendung system.beep()
in win7 / 8/10 erzeugt also keinen Ton über den internen Systemlautsprecher. Stattdessen erhalten Sie einen Signalton von externen Lautsprechern, sofern diese verfügbar sind.
Ich bin gerade auf diese Frage gestoßen, als ich nach einer Lösung für mich gesucht habe. Sie können die System-Beep-Funktion aufrufen, indem Sie einige Kernel32-Funktionen ausführen.
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
}
Dies ist das gleiche, wie Sie Powershell ausführen würden:
[console]::beep(1000, 1600)
[console]::beep(2000, 400)