2012-04-11 42 views
5

vb.netプログラムでPCの内蔵スピーカーを鳴らすことはできますか?あなたはCのものを知っている\a BELL 私はbeep()を試しましたが、これはサウンドカードのエラー音だけを生成します。 私はまた、上記のVistaとの外見上の唯一の良い無喜びで vb.netシステムでビープ音が鳴ります

<Runtime.InteropServices.DllImport("KERNEL32.DLL", EntryPoint:="Beep", SetLastError:=True, _ 
CharSet:=Runtime.InteropServices.CharSet.Unicode, ExactSpelling:=True, _ 
CallingConvention:=Runtime.InteropServices.CallingConvention.StdCall)> _ 
Public Shared Function _ 
    aBeep(ByVal dwFreq As Integer, ByVal dwDuration As Integer) _ 
    As Boolean 
End Function 

を試してみました。 提案がありますか?

+1

あなたが知っているが、すべてではないことをすべきだと思いますコンピュータでさえ、あなたが説明するような内蔵のハードウェアスピーカーを持っていますよね?したがって、このプログラムは、多くの場合、特に企業環境で使用される安価なマシンでは期待通りに機能しない可能性があります。 –

+1

また、この64ビットWindows XPはありますか?最後に私が覚えているので(私はXPを使ってから長い時間がかかりました)、['Beep'関数(http://msdn.microsoft.com/en-us/library/ms679277.aspx)はビープ音を鳴らしましたあなたが説明するように、内部のシステムスピーカーから。これは、 'MessageBeep'機能とは対照的です。 XPとWindows Vistaの64ビット版がこの問題を最初に打ち砕いた。 –

+0

ちょっと私は64ビットバージョンです...私のユーザーはただヘッドホンを着用しなくてはならないと思います... Ta – Toby

答えて

3

VB.NETでMy名前空間を使用すると、My.Computer.Audioを経由してオーディオにアクセスできます。これにはPlayメソッドがあり、ファイルの場所またはByte配列またはストリームとして.wavサウンドを渡すことができますが、(Beep)の値をとるPlaySystemSoundメソッドもあります。したがって、このサウンドを再生するフルラインは次のとおりです。

My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Beep) 

保証が、それは.NET Frameworkの一部だとして、私はこのは、XPとVista上仕事...

+0

これはサウンドカード上で "doop"という警告メッセージを表示しますが、ありがたいです – Toby

+0

私は持っていませんReflectorのコピーは便利だが、私がすでに説明したように、Windows XPの64ビット版では動作しないWin32の「Beep」機能を単にラップすることに喜んでいるだろう。参照:http://blogs.msdn.com/b/larryosterman/archive/2010/01/04/what-s-up-with-the-beep-driver-in-windows-7.aspx –

+0

@CodyGray It user32.dllのMessageBeepを呼び出します。 – PhilPursglove

関連する問題