DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

C#でビープ音を鳴らす

VBではBeep関数により、簡単にビープ音(一般の警告音)を鳴らすことが出来ます。C#で同じようにビープ音を鳴らすには、Microsoft.VisualBasic名前空間内InteractionクラスのBeepメソッドを使うか、あるいはWin32 APIのMessageBeep関数を使います。

.NET Framework 2.0以降では、Console.Beepメソッドや、SystemSounds.Beep.Playメソッドで鳴らすこともできます。

Win32 APIのMessageBeep関数を使用した方法

次にWin32 APIのMessageBeep関数でビープ音を鳴らす例を示します。なおMessageBeep関数について詳しくは、「システムサウンドを再生する」で説明しています。

C#
コードを隠すコードを選択
//ビープ音を鳴らす
[System.Runtime.InteropServices.DllImport("user32.dll")] 
private static extern int MessageBeep(uint n); 
public static void Beep()
{
    MessageBeep(0);
}

.NET Framework 2.0以降で、Console.BeepメソッドやSystemSounds.Beep.Playメソッドを使用した方法

.NET Framework 2.0以降で、Console.BeepメソッドやSystemSounds.Beep.Playメソッドを使う例は、以下のとおりです。なおSystemSoundsクラスについて詳しくは、「システムサウンドを再生する」で説明しています。

VB.NET
コードを隠すコードを選択
'800Hzの周波数で200ミリ秒間再生する
Console.Beep()

'10000の周波数で500ミリ秒間再生する
Console.Beep(10000, 500)
C#
コードを隠すコードを選択
//800Hzの周波数で200ミリ秒間再生する
Console.Beep();

//10000の周波数で500ミリ秒間再生する
Console.Beep(10000, 500);

//SystemSoundsクラスで一般の警告音を鳴らす
System.Media.SystemSounds.Beep.Play();

Console.Beepメソッドは他の方法と少し違います。Console.BeepメソッドはWin32 APIのBeep関数を呼び出すため、PC本体(マザーボード)のスピーカーからビープ音を鳴らします。なお、Beep関数はWindows Vista x64およびWindows XP 64-Bit Editionではサポートされていません。

  • 履歴:
  • 2007/1/15 「.NET Framework 2.0以降で、Console.Beepメソッドを使用した方法」を追加。
  • 2010/9/13 SystemSounds.Beepを追加。Console.Beepの説明を追加。
  • 2012/4/9 2番目の「システムサウンドを再生する」のリンクが間違えていたのを修正。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。