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.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

//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!