- ベストアンサー
VCでビープ音
いつもお世話になっております。 今回はVC++でつくったアプリケーションでビープ音が鳴らしたいのですが、 普通のMessageBeepではなくて、マザーボードについているスピーカーからビープを鳴らしたいです。 よく起動時にピッってなるあのスピーカーから鳴らしたいのですが可能でしょうか。 ご存知の方がおられましたらご教授願います。 環境 WindowsXP SP3 VisualStudio2005 professional よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
ちょっと説明がまずかったようですね。 >ドライバを入れるということですが、今回はVC++で作ったアプリ内で完結させたいので、ほかのドライバとかはちょっとまずいです。 とのことですが、API の Beep() を使用すれば、デバイスドライバなしでビープ音を出力可能です。
その他の回答 (5)
- tsukasa-12r
- ベストアンサー率65% (358/549)
すみません、訂正です。 >#1 の回答の後、ちょっと調べてみました。 >#1 の回答は昔の・・・ の #1 は #2 の間違いです。
- tsukasa-12r
- ベストアンサー率65% (358/549)
#2 の回答をした者です。 #1 の回答の後、ちょっと調べてみました。 #1 の回答は昔の記憶で書いてしまったのですが、昔 ( NT の時代 (^^; ) は Beep という API 関数はなかたのですが、Windows 2000 以降は Beep という API があるので、これを使用すれば済むようです。 ちなみに、フリーソフトで直接 IO 制御ができるようになるドライバというのは ioscm.sys で、これは、Vector とかにあるようです。 また、 asm{ ... } を使用しなくても、c の _out() 関数を使用すれば _out( 0x61, 3 ); /* Beep スタート */ _out( 0x61, 0 ); /* Beep ストップ */ のような感じでできるようです。( ioscm.sys を使用すれば )
- mk48a
- ベストアンサー率56% (1133/2007)
ビープ音だからWAVファイルの再生とは関係ないんじゃ? 以下のページが参考になるかも http://msdn.microsoft.com/ja-jp/library/8hftfeyw.aspx
補足
ご回答ありがとうございます。 .netについてはまったくの無知ですのでちょっと調べてみたいと思います。 参考にさせていただきます。
- tsukasa-12r
- ベストアンサー率65% (358/549)
直接IOポートを制御できるようにするデバイスドライバがフリーソフトとかであったと思います。 「直接 IOポート WINDOWS」 とかで検索してみてください。 それがあれば、 _asm {out nn xx} のようなやり方(nnはポート番号)でできると思います。 Beepのポート番号は、忘れてしまいました…。 これも「Beep ポート番号」 とかで検索すれば出て来ると思います。
- YUI_AI
- ベストアンサー率45% (303/661)
目的の機能は、サウンドデバイスからWAVファイル等を再生・システムサウンドの再生になるかと思います。 System.Media 名前空間を参照してみて下さい。
補足
ご回答ありがとうございます。 ドライバを入れるということですが、今回はVC++で作ったアプリ内で完結させたいので、ほかのドライバとかはちょっとまずいです。 機会があったら使ってみようと思いますが・・・ 重要な点を言い忘れていて申し訳ありません。