Feedback

C# - Beep Töne ausgeben (oldie but goldie)

Veröffentlicht von am 04.07.2006
(3 Bewertungen)
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);
Abgelegt unter Beep, Töne, Sound, Audio, Windows, Musik, Oldie.

2 Kommentare zum Snippet

Daniel Hafner schrieb am 11.07.2006:
Geht auch mit "Console.Beep(int frequency, int duration)"
Frequenz geht von 37 bis 32767, duration sind Milisekunden
Koopakiller schrieb am 23.06.2013:
@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:
Speaker.Beep(Speaker.Tones.MB_ICONQUESTION);

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.
 

Logge dich ein, um hier zu kommentieren!