Audio 从VB6播放Windows系统声音

Audio 从VB6播放Windows系统声音,audio,vb6,Audio,Vb6,我想播放Windows系统听起来像错误和信息对话框 我试过API: 问题是它只在XP/2000中工作,但在Win7中不起作用。我还希望能够播放不同的声音。您可以通过调用来播放标准的Windows警报声音。要从VB 6调用它,需要编写如下声明: Public Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long 然后您需要指定要播放的蜂鸣音类型的常量: Public Const MB_DEFAULTBEEP

我想播放Windows系统听起来像错误和信息对话框

我试过API:


问题是它只在XP/2000中工作,但在Win7中不起作用。我还希望能够播放不同的声音。

您可以通过调用来播放标准的Windows警报声音。要从VB 6调用它,需要编写如下声明:

Public Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long
然后您需要指定要播放的蜂鸣音类型的常量:

Public Const MB_DEFAULTBEEP As Long = -1   ' the default beep sound  
Public Const MB_ERROR As Long       = 16  ' for critical errors/problems
Public Const MB_WARNING As Long     = 48  ' for conditions that might cause problems in the future
Public Const MB_INFORMATION As Long = 64  ' for informative messages only
Public Const MB_QUESTION As Long    = 32  ' (no longer recommended to be used)
请注意,它们与消息框(MsgBox)显示的图标完全匹配。每个可用图标都有一个与之关联的不同默认警报声音。同样适用于在消息框中正确使用这些图标的方法也适用于它们作为独立警报声音的使用

当然,因为这些是标准的系统声音,它们不能保证总是播放相同的声音。用户可以配置使用的确切声音。但这可能是你想要的


至于为什么
Beep
不起作用,这是一个相当悲伤和复杂的故事。包含大部分详细信息:

很久以前,所有PC机共用一个8254可编程间隔定时器芯片,用于产生原始声音。Beep函数是专门为在该硬件上发出嘟嘟声而编写的。
[…]
从那时起,声卡已成为几乎所有PC计算机上的标准设备。随着声卡变得越来越普遍,制造商开始从计算机上拆除老式芯片。这些芯片也被排除在服务器计算机的设计之外。结果是,没有该芯片,Beep不能在所有计算机上工作。这还可以,因为大多数开发人员已经开始调用MessageBeep函数,该函数使用默认的声音设备,而不是8254芯片

最终,由于缺乏与之通信的硬件,WindowsVista和WindowsXP64位版本中对Beep的支持被取消

在Windows 7中,重新编写了嘟嘟声,以将嘟嘟声传递给会话的默认声音设备。这通常是声卡,但在终端服务下运行时除外,在这种情况下,会在客户端上发出嘟嘟声

您可以在Larry Osterman的博客上找到更多信息:


所以它应该在Windows7上运行,但它要求您的计算机安装了声音发生器硬件,连接了扬声器,并且它们已打开。当然,
MessageBeep
功能也是如此。

在谷歌上搜索
VB6系统声音的1秒搜索结果是第一个结果。因此,这并不能代替您先进行基本搜索。@Ken White抱歉!我到处找,所以我决定在这里问。我说我要的是“VB6”而不是“.NET”。Microsoft tutroial仅适用于VB.NET和VB2010,不支持Visual Basic版本6!!谢谢你的评论。对不起。我们必须看更多关于这些搜索结果的文章才能找到,这是专门针对VB6的。花了整整两分钟左右的时间。:-)正如我所说的,请在发布之前自己努力解决问题。所以不应该被认为是你的个人研究助理。我们不是LMGTFY网站。:-)哎呀!那很好我非常感谢你。肯先生,我真的在谷歌上搜索了大约1-2个小时!(
“系统在VB6中发出声音”
)但我没有得到任何结果!再次感谢你@AmirrezA_Nasiri如果你有一个好的解决方案,你可以把它贴在这里,作为以后遇到这个问题的人的答案。
Public Const MB_DEFAULTBEEP As Long = -1   ' the default beep sound  
Public Const MB_ERROR As Long       = 16  ' for critical errors/problems
Public Const MB_WARNING As Long     = 48  ' for conditions that might cause problems in the future
Public Const MB_INFORMATION As Long = 64  ' for informative messages only
Public Const MB_QUESTION As Long    = 32  ' (no longer recommended to be used)