Wie kann ich den internen Lautsprecher des Computers in C# ohne externe Lautsprecher piepen lassen?Wie kann ich den Computer in C# piepen lassen?
Antwort
In .NET 2.0 können Sie Console.Beep (verwenden).
// Default beep
Console.Beep();
Sie können auch die Frequenz und Länge des Pieptons in Millisekunden angeben.
// Beep at 5000 Hz for 1 second
Console.Beep(5000, 1000);
Weitere Informationen finden http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx
Console.Beep
dieses Versuchen
Console.WriteLine("\a")
Sie können auch die relativ ungenutzt 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();
Dokumentation hierfür ist in verfügbar klingt http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx
Leider benötigen diese Systemsounds externe Lautsprecher, mit denen nicht immer gerechnet werden kann. Es ist definitiv gut, diese zu kennen! –
Jetzt wissen, dass x64-Versionen von Windows Lautsprecher Console.Beep() hören müssen, funktionieren diese Optionen genauso gut. –
Mein Vista x64 auf einem Laptop mit eingebauten Lautsprechern spielt Console.Beep() nicht, aber diese sind in Ordnung. –
Es wird bestätigt, dass win7 und neuere Versionen (mindestens 64bit oder beides) Verwenden Sie nicht den Systemlautsprecher und leiten Sie stattdessen den Anruf an das Standardgeräuschgerät weiter.
So wird die Verwendung von system.beep()
in Win7/8/10 nicht mit internen Systemlautsprecher klingen. Sie erhalten jedoch einen Piepton von externen Lautsprechern, sofern dieser verfügbar ist.
Ich bin gerade auf diese Frage gestoßen, als ich nach der Lösung für mich suchte. Sie könnten erwägen, die System-Piep-Funktion aufzurufen, indem Sie einige Kernel32-Dateien 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 laufen würden:
[console]::beep(1000, 1600)
[console]::beep(2000, 400)
Ihr neues Abzeichen genießen. ;) –
Ich habe gerade in Win 7 x64 RC getestet, und obwohl der interne Lautsprecher keinen Signalton gab, gab es einen Piepton durch die Lautsprecher, als ich sie eingesteckt hatte und an. Ich denke, es ist nur der interne (Mobo) Lautsprecher, der nicht piepst. Danke für die Info @Lck. –
+1 für den x64-Tipp, funktioniert auch nicht auf Vista x64! –