beepだとスピーカから音がでますが、そうではなくて
マザーボードあたりから音を出すにはどうしたら良いのでしょうか?
普通出す必要がありません
起動時になる音ですか?
あれはOSが制御出来ないんじゃないすか?
パソコンの起動時のやつなら…鳴らせると思いますよ、
現にWindows.pasにて定義されてるBeepメソッドが、それとそっくりな音を出します。
スピーカーではなく本体から鳴ってますから、これで間違いないと思います。
> 普通出す必要がありません
スピーカーだと"ミュート"の時にならせないから——ということだと思いますが。
ただ、ハードウェアによってどんな音になるかわかりませんし、
注意するべきだとは思います。
わたしの感覚ですが、
デスクトップ→大して目立つような音ではない ノート→かなりうるさい でした。
まあ、ノートパソコンでやったのは、あくまでC言語のPrintfでならしたものですけど。
WindowsユニットのBeepを使用してください。つまり、APIのBeepです。
たとえば
Windows.Beep(440, 500);
ただし、Windows9x系では周波数の指定・長さの指定はできなかったような気がします。
# 未確認です
そういえば、
http://torry.net/
ここに、ビープ音で曲をならすコンポーネントがあったような。
今もあるかはわかりませんが。
>beepだとスピーカから音がでますが、そうではなくて
っと有るので、Beepじゃ駄目なんじゃないんですか?
サウンドさん?
るるとん@Kさん、にしのさんのレスを読みましたか?
> APIのBeep
> ただし、Windows9x系では周波数の指定・長さの指定はできなかったような気がします。
DelphiのBeep手続きではないですよ。
Delphiのbeep手続きは何のユニットなんですか?
(PDAからの投稿なのでわからん)
SysUtilsです。
SysUtilsです。
API の Beep() でもサウンドカードがあるときはスピーカーから音がでます。
システムブザーは、
MessageBeep($FFFFFFFF);
です。
みなさん、色々アドバイスありがとうございます。
スピーカに電源を入れておかないと音が出ないのは困るので、
どうしてもマザーボードから音をだしたいのです。
Beepではだめみたいです。
jokさん、みなさんありがとうございます!!
MessageBeep($FFFFFFFF);で できました。
> 普通出す必要がありません
システムビープは、動作確認やデバッグのときに超便利でわたしには必須です。
もう解決したようですが、どうもすっきりしないので。
> MessageBeep($FFFFFFFF);
私の環境でテストしてみると、Meでは有効でしたが、XPでは
一切音は鳴りませんでした。(複数のマシンで確認)
逆に、Windows.Beep(440, 500); はXPでは有効でしたが、
Meではダメでした。
どちらの方法も環境に依存しているみたいですね。
> MessageBeep($FFFFFFFF);で できました。
サウンドさんの環境でだけ実行するプログラムであれば
これでOKだと思います。
> もう解決したようですが、どうもすっきりしないので。
これは微妙なところです。
以前は、サウンドカードがないマシンもたくさんあったのです。
その場合は、マザーボードのブザーだけが有効でした。これは
初期のPCの規格に入っていたので必ず装備しなければなりませんでした。
最近は、むしろサウンドカードが無いほうが珍しいので、マザーボードの
ブザーが省略されるようになりました。ノートでは、かなりの率でシステム
ブザーがありません。あとはハードウェアとの対応が各社バラバラで、
システムブザーをエミュレートしないものもあるようです。しかし、かなりの
率で、スピーカミュートでも MessageBeep($FFFFFFFF); でシステムブザーを
エミュレートする場合もあります。
ツイート | ![]() |