サウンドを再生します。.wav,.mid,.avi,.mp3は再生できますが、.m4a,.oggは再生できません。音声ファイルが見つからない場合エラー音が鳴ります。
.aviの動画ファイルを再生するときウィンドウのクラス名はAVIWnd32です。
- 構文
- void = SOUND( ファイル名, 同期フラグ, WAV出力先 )
- 引数
- ファイル名 (String)必須
- 再生ファイル名(WAV, MID, AVI等, 'BEEP' 指定にてBEEP音)もしくはサウンドにて割り当てられたイベント名('LowBatteryAlarm', 'MailBeep', 'SystemAsterisk'等) (ファイル名を省略すると再生をストップ)
- 同期フラグ (Boolean = False)省略可
- FALSE
- 待たない (デフォルト)
- TRUE
- 終了を待つ
- WAV出力先 (Integer = 0)省略可
- WAVファイル時の再生デバイス (0から、デフォルト=0)
- 戻り値
イベント名
サウンドのイベント名はレジストリのHKEY_CURRENT_USER\AppEvents\EventLabels\のサブキーに割り当てられています。

サブキーの一覧は以下のプログラムで取得することができます。
これらのサブキーはコントロール パネル\ハードウェアとサウンドのシステムサウンドの変更で開くウィンドウのサウンドタブにあるプログラム イベントと対応しています。

以下はレジストリのサブキーとプログラム イベント名の対応表です。システムサウンドの変更でプログラム イベントで初めから表示されているものには初期表示の項目に◯をつけています。
カテゴリはWindows、エクスプローラー、Windows 音声認識は必ずありますが、その他の項目はインストールしているソフトによって違いがあります。
| カテゴリ | 項目 | イベント名 | 初期表示 |
|---|---|---|---|
| Windows | |||
| NFP 完了 | Notification.Proximity | ◯ | |
| NFP 接続 | ProximityConnection | ◯ | |
| Windows のロック解除 | WindowsUnlock | ✕ | |
| Windows の終了 | SystemExit | ✕ | |
| Windows テーマの変更 | ChangeTheme | ◯ | |
| Windows ユーザー アカウント制御 | WindowsUAC | ◯ | |
| Windows ログオフ | WindowsLogoff | ✕ | |
| Windows ログオン | WindowsLogon | ✕ | |
| アラーム 1 | Notification.Looping.Alarm | ✕ | |
| アラーム 10 | Notification.Looping.Alarm10 | ✕ | |
| アラーム 2 | Notification.Looping.Alarm2 | ✕ | |
| アラーム 3 | Notification.Looping.Alarm3 | ✕ | |
| アラーム 4 | Notification.Looping.Alarm4 | ✕ | |
| アラーム 5 | Notification.Looping.Alarm5 | ✕ | |
| アラーム 6 | Notification.Looping.Alarm6 | ✕ | |
| アラーム 7 | Notification.Looping.Alarm7 | ✕ | |
| アラーム 8 | Notification.Looping.Alarm8 | ✕ | |
| アラーム 9 | Notification.Looping.Alarm9 | ✕ | |
| インスタント メッセージの通知 | Notification.IM | ◯ | |
| システム エラー | SystemHand | ◯ | |
| システム通知 | SystemNotification | ◯ | |
| ツール バー バンドの表示 | ShowBand | ◯ | |
| デスクトップ メールの通知 | MailBeep | ◯ | |
| デバイスの切断 | DeviceDisconnect | ◯ | |
| デバイスの接続 | DeviceConnect | ◯ | |
| デバイス接続の失敗 | DeviceFail | ◯ | |
| バッテリ低下アラーム | LowBatteryAlarm | ◯ | |
| バッテリ切れアラーム | CriticalBatteryAlarm | ◯ | |
| プログラム エラー | AppGPFault | ◯ | |
| プログラムの終了 | Close | ◯ | |
| プログラムの起動 | Open | ◯ | |
| メッセージ (問い合わせ) | SystemQuestion | ◯ | |
| メッセージ (情報) | SystemAsterisk | ◯ | |
| メッセージ (警告) | SystemExclamation | ◯ | |
| メッセージのシェイク | MessageNudge | ◯ | |
| メニュー コマンド | MenuCommand | ◯ | |
| メニュー ポップアップ | MenuPopup | ◯ | |
| 一般の警告音 | .Default | ◯ | |
| 予定表のアラーム | Notification.Reminder | ◯ | |
| 元に戻す (拡大) | RestoreUp | ◯ | |
| 元に戻す (縮小) | RestoreDown | ◯ | |
| 印刷完了 | PrintComplete | ◯ | |
| 新着テキスト メッセージの通知 | Notification.SMS | ◯ | |
| 新着ファックスの通知 | FaxBeep | ◯ | |
| 新着メールの通知 | Notification.Mail | ◯ | |
| 最大化 | Maximize | ◯ | |
| 最小化 | Minimize | ◯ | |
| 着信呼の通知 1 | Notification.Looping.Call | ✕ | |
| 着信呼の通知 10 | Notification.Looping.Call10 | ✕ | |
| 着信呼の通知 2 | Notification.Looping.Call2 | ✕ | |
| 着信呼の通知 3 | Notification.Looping.Call3 | ✕ | |
| 着信呼の通知 4 | Notification.Looping.Call4 | ✕ | |
| 着信呼の通知 5 | Notification.Looping.Call5 | ✕ | |
| 着信呼の通知 6 | Notification.Looping.Call6 | ✕ | |
| 着信呼の通知 7 | Notification.Looping.Call7 | ✕ | |
| 着信呼の通知 8 | Notification.Looping.Call8 | ✕ | |
| 着信呼の通知 9 | Notification.Looping.Call9 | ✕ | |
| 通知 | Notification.Default | ◯ | |
| 選択 | CCSelect | ◯ | |
| Microsoft Visual Studio | |||
| Breakpoint Hit | VS_BreakpointHit | ◯ | |
| ビルドが取り消されました | VS_BuildCanceled | ◯ | |
| ビルド失敗 | VS_BuildFailed | ◯ | |
| ビルド正常終了 | VS_BuildSucceeded | ◯ | |
| エクスプローラー | |||
| FAX の送信 | FaxSent | ◯ | |
| FAX エラー | FaxError | ◯ | |
| ごみ箱を空にする | EmptyRecycleBin | ◯ | |
| ナビゲーションの完了 | ActivatingDocument | ◯ | |
| ナビゲーションの開始 | Navigating | ◯ | |
| フィードの発見 | FeedDiscovered | ◯ | |
| ポップアップ ウィンドウのブロック | BlockedPopup | ◯ | |
| メニュー項目の移動 | MoveMenuItem | ◯ | |
| 情報バー | SecurityBand | ||
| 検索プロバイダーの発見 | SearchProviderDiscovered | ◯ | |
| 着信呼び出し | FaxLineRings | ◯ | |
| 通知バー | ◯ | ||
| Windows 音声認識 | |||
| オフ | HubOffSound | ◯ | |
| オン | HubOnSound | ◯ | |
| スリープ状態 | HubSleepSound | ◯ | |
| 不明瞭解消パネル | PanelSound | ◯ | |
| 不明瞭解消数字 | DisNumbersSound | ◯ | |
| 誤認識 | MisrecoSound | ◯ | |
| Microsoft Visual C++ 2010 Express | |||
| ビルドが取り消されました | ◯ | ||
| ビルド失敗 | ◯ | ||
| ビルド正常終了 | ◯ | ||
| VNCviewer | |||
| Bell | ◯ |
初期表示されていない項目はレジストリを操作することで表示させることができます。HKEY_CURRENT_USER\AppEvents\EventLabels\のサブキーを選択したとき値の名前にExcludeFromCPLがあるものが表示・非表示を切り替えることができる項目で、このデータを0にすることで表示することができます。1で非表示に戻すこともできます。

以下のプログラムは初期表示されていない項目を表示させます。valueの値を0で項目を表示、1で非表示にします。
これらのイベント名はSOUND関数の第一引数に指定することで鳴らすことができます。
以下はすべてのイベント名を取得しそのサウンドを再生させるプログラムです。ESCで強制終了することができます。
レジストリのHKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\<イベント名>\.Currentの(既定)の値にはサウンドのWAVファイルのパスが設定されています。
以下はイベント名からWAVファイルのパスを取得します。
同期フラグ
音声ファイルが終了してから処理を進める場合はTrueを指定します。
同期フラグにFalseを指定すると音声を再生してから終了を待たずに次の処理に進み、処理が終わると音声が止まります。
音声を繰り返し流す
スレッドを使いメインルーチンと別に音声を流す処理を組み込みます。
メインルーチンが終わるまで音声を流し続けるにはSOUND関数をWHILE文で無限ループにします。
WAV出力先取得
タスクトレイのスピーカーを右クリック、[サウンドの設定を開く]、右側の関連設定から[サウンド コントロールパネル]で再生デバイスとサウンドが出力されているデバイスを確認することができます。アイコンにチェックマークが入っていて[既定のデバイス]と表示されているものが0を指定したときのデフォルトの出力先となります。

サウンドが再生されているときは以下のように緑色のバーが動くので再生デバイスの確認をすることができます。

使い方
絶対パスで指定
D:\Desktop\sample.wavのWAVファイルを再生します。
環境変数を含むパスの指定
環境変数を含むパス文字列を指定することもできます。以下は%SystemRoot%\media\Alarm01.wavのサウンドを再生します。
プログラム実行例
Windows通知のwavファイルを再生する
C:\Windows\Media\Windows Notify.wavを再生します。
フォルダ内の音声ファイルをすべて再生
指定フォルダ内の曲をトラック番号順で再生
BEEP音を鳴らす
公開日:
更新日:
