Hoe laat ik de interne luidspreker van de computer piepen in C# zonder externe luidsprekers?
Antwoord 1, autoriteit 100%
In .Net 2.0 kunt u Console.Beep() gebruiken.
// Default beep
Console.Beep();
Je kunt ook de frequentie en lengte van de piep in milliseconden specificeren.
// Beep at 5000 Hz for 1 second
Console.Beep(5000, 1000);
Raadpleeg voor meer informatie http:// msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx
Antwoord 2, autoriteit 78%
U kunt ook de relatief ongebruikte gebruiken:
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();
Documentatie voor deze geluiden is beschikbaar in http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx
Antwoord 3, autoriteit 12%
De oplossing zou zijn,
Console.Beep
Antwoord 4, autoriteit 7%
Probeer dit
Console.WriteLine("\a")
Antwoord 5, autoriteit 4%
Het is bevestigd dat Windows 7 en nieuwere versies(minstens 64bit of beide) geen systeemluidsprekergebruiken en in plaats daarvan de oproep doorsturen naar het standaard geluidsapparaat.
Dus het gebruik van system.beep()
in win7/8/10 zal geen geluid produceren met de interne systeemluidspreker. In plaats daarvan hoor je een pieptoon van externe luidsprekers als deze beschikbaar zijn.
Antwoord 6, autoriteit 4%
Ik kwam deze vraag net tegen tijdens het zoeken naar de oplossing voor mezelf.
Je zou kunnen overwegen om de systeempiepfunctie aan te roepen door wat kernel32-dingen uit te voeren.
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
}
Dit is hetzelfde als wanneer u powershell zou gebruiken:
[console]::beep(1000, 1600)
[console]::beep(2000, 400)