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]

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

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