5

是否可以让 vb.net 程序在 PC 的内部扬声器中发出声音?你知道产生 C 的\aBELL 的那个我试过beep(),但这只会在声卡上产生错误声音。我也试过

<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

显然,它在 Vista 及更高版本上的唯一好处是没有任何乐趣。有什么建议么?

4

1 回答 1

3

使用MyVB.NET 中的命名空间,您可以通过My.Computer.Audio. 这有一个Play带有许多重载的方法,允许您通过文件位置或作为 Byte 数组或 Stream 传入 .wav 声音,但它也有一个PlaySystemSound采用enum的方法,其中之一是Beep. 所以播放这个声音的完整行是:

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

没有保证,但由于它是.Net框架的一部分,我认为这应该适用于XP和Vista......

于 2012-04-11T17:38:39.380 回答