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.
Snippet in VB übersetzen
//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!