C#でコンピューターのビープ音を鳴らすにはどうすればよいですか?


105

外部スピーカーなしでコンピューターの内部スピーカーをC#でビープ音にするにはどうすればよいですか?

回答:


193

.Net 2.0では、Console.Beep()を使用できます。

// Default beep
Console.Beep();

ビープの頻度と長さをミリ秒単位で指定することもできます。

// Beep at 5000 Hz for 1 second
Console.Beep(5000, 1000);

詳細については、http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspxを参照してください


11
私はWin 7 x64 RCでテストしましたが、内蔵スピーカーはビープ音を鳴らしませんでしたが、スピーカーを接続してオンにすると、スピーカーからビープ音が鳴りました。ビープ音を鳴らさないのは、内蔵(モボ)スピーカーだけだと思います。情報@Lckをありがとう。
a_hardin 2009年


3
x64で動作するはずですが、サウンドは通常のスピーカー(ミュートにすることができます)から出力されます。blogs.msdn.com/larryosterman/archive/2010/01/04/...
Tarnayカールマン

x86を使用していますが、内蔵スピーカーから音が再生されません。外付けスピーカーのみ!!!!!
Rafik Bari

1
@LorenzCKそれは... 100%真実ではないのですか?私はWin7 64をBeep()使用しており、外部スピーカーからの全範囲の周波数を聞くことができます。しかし、内部の部分は+1でした。
BK

146

比較的使用されていないものを使用することもできます。

    System.Media.SystemSounds.Beep.Play();
    System.Media.SystemSounds.Asterisk.Play();
    System.Media.SystemSounds.Exclamation.Play();
    System.Media.SystemSounds.Question.Play();
    System.Media.SystemSounds.Hand.Play();

このサウンドのドキュメントは、http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v = vs.110).aspxにあります


残念ながら、これらのシステムサウンドには外部スピーカーが必要ですが、常にそうであるとは限りません。しかし、これらを知ることは間違いなく良いことです!
a_hardin 2008

1
x64バージョンのWindowsでは、Console.Beep()を聞くためにスピーカーが必要であることを認識しているため、これらのオプションも同様に機能します。
a_hardin

4
スピーカーが内蔵されたラップトップ上のVista x64はConsole.Beep()を再生しませんが、これらは問題ありません。
アンディデント



7

Windows 7以降のバージョン(少なくとも64ビットまたは両方)はシステムスピーカー使用せず、代わりにデフォルトのサウンドデバイスに通話をルーティングすることが確認されています

したがって、system.beep()win7 / 8/10 でを使用しても、内部システムスピーカーを使用したサウンドは生成されません。代わりに、外部スピーカーが使用可能な場合は、外部スピーカーからビープ音が聞こえます。


ただし、サウンドカードを介して動作する/ビープ音を鳴らす保証はありません。私のWindows 10マシンではビープ音はありません-サウンドカードはもちろん機能します
hfrmobile

4

私は自分のための解決策を探しているときにこの質問に出くわしました。いくつかのkernel32を実行して、システムのビープ機能を呼び出すことを検討するかもしれません。

using System.Runtime.InteropServices;
        [DllImport("kernel32.dll")]
        public static extern bool Beep(int freq, int duration);

        public static void TestBeeps()
        {
            Beep(1000, 1600); //low frequency, longer sound
            Beep(2000, 400); //high frequency, short sound
        }

これは、powershellを実行する場合と同じです。

[console]::beep(1000, 1600)
[console]::beep(2000, 400)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.