Sprache: C#
Zeigt wie man die alten Beep Töne, die heute noch in Windows verwendet werden anspricht und benutzt.
//Hier die selbstgeschriebene Klasse
public class Speaker
{
[Flags]
//Hier die benötigte Enum mit den dazugehörigen Codes
public enum Tones
{
MB_OK = 0,
MB_ICONHAND = 0x10,
MB_ICONQUESTION = 0x20,
MB_ICONEXCLAMATION = 0x30,
MB_ICONASTERISK = 0x40,
}
//Hier wird die benötigte DLL geladen
[DllImport("user32.dll", EntryPoint = "MessageBeep")]
//Die Methode für den späteren Aufruf
public static extern bool Beep(Tones tone);
}
//Der Aufruf der Funktion
//Achtung, diese gehört nicht mehr zur Klasse.
Speaker.BeepSpeaker.Tones.MB_ICONEXCLAMATION);
//Hier die selbstgeschriebene Klasse
public class Speaker
{
[Flags]
//Hier die benötigte Enum mit den dazugehörigen Codes
public enum Tones
{
MB_OK = 0,
MB_ICONHAND = 0x10,
MB_ICONQUESTION = 0x20,
MB_ICONEXCLAMATION = 0x30,
MB_ICONASTERISK = 0x40,
}
//Hier wird die benötigte DLL geladen
[DllImport("user32.dll", EntryPoint = "MessageBeep")]
//Die Methode für den späteren Aufruf
public static extern bool Beep(Tones tone);
}
//Der Aufruf der Funktion
//Achtung, diese gehört nicht mehr zur Klasse.
Speaker.BeepSpeaker.Tones.MB_ICONEXCLAMATION);
Alte URL:
/snippet/beep-toene-ausgeben-oldie-but-goldie/128
Geht auch mit „Console.Beep(int frequency, int duration)“
Frequenz geht von 37 bis 32767, duration sind Milisekunden
@Daniel Hafner
Die von dir genannte Methode gibt aber nicht die Töne aus, die Windows benutzt, da diese richtige Melodien sein Können. Console.Beep entspricht der folgender WinAPI Funktion:
http://msdn.microsoft.com/de-de/library/windows/desktop/ms679277.aspx
@Rene Koch
Der Beispielaufruf ist Falsch, so müsste er aussehen:
[code]Speaker.Beep(Speaker.Tones.MB_ICONQUESTION);[/code]
Außerdem würde ich die Methode in .NET nicht anders benennen, als in Windows. Das könnte leicht zu Verwechslungen führen, wenn jemand aus der C++-Ecke den Namen, aber nicht die Signatur betrachtet.