2020年11月27日
川俣晶の縁側ソフトウェアC# コーディング How To total 1959 count

【入門級】プログラムの終了時に音を出して知らせる

Written By: 川俣 晶連絡先

 時間がかかるプログラムが終了するときには音を出して教えて欲しいものです。

 それなら終わるまで他の仕事ができます。

 しかし、音を出すためには何か音楽ファイルを用意しなければならないのでしょうか。

 いいえ。単なる合図で音を出すだけなら、音楽である必要はありません。

 Console.Beep()で音はピーと出ます。

 引数に周波数と長さを指定すると、音程と長さも変えられます。

 引数なしは200ミリ秒間の800ヘルツの周波数なので、Console.Beep(800,200)とすれば同じ音が出ます。

 もちろん、周波数を上げれば音程は高くなります。

罠の数々 §

  • 【Windows Vista および WINDOWS XP の64ビット版ではサポートされていません】と書いてある。音が出ないケースもあり得るのだ。
  • ボリュームが絞ってあったら意味がない

参考リンク §

Console.Beep メソッド

 実は上で説明している場合の他に音が出ないケースがまだある。上記のリンクから辿って捜してみよう。ヒントは【例外】である。具体的にどんな時とどんな時だろうか。

リポジトリ §

https://github.com/autumn009/cshowto

beep §

using System;

class Program

{

    static void Main()

    {

        Console.WriteLine("Working...");

        Console.WriteLine("Done!");

        Console.Beep();

        Console.Beep(800,200);

        for (int i = 0; i < 5; i++)

        {

            Console.Beep(800+i*100, 200);

        }

    }

}

実行結果

Working...

Done!

(音が何回か出る)

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?