分享

如何调用 MessageBeep API 来播放系统警报.wav 声音

 ZZHHGG 2010-04-03

本文介绍如何调用 MessageBeep API 函数以播放波形声音与给定的 Windows 系统警报级别相关联。 这是用于播放一个声音,例如显示一个消息框,其...

本文介绍如何调用 MessageBeep API 函数以播放波形声音与给定的 Windows 系统警报级别相关联。

这是用于播放一个声音,例如显示一个消息框,其中具有 MsgBox 语句时很有用。

更多信息
为每个 Windows 警报级别声音的 WIN.INI 初始化文件 [声音] 部分中的项由标识。您可以使用 Windows 控制面板,若要更改此 [声音] 部分...

为每个 Windows 警报级别声音的 WIN.INI 初始化文件 [声音] 部分中的项由标识。您可以使用 Windows 控制面板,若要更改此 [声音] 部分。

MessageBeep API 函数排队声音后立即将控制权返回给 vba。异步播放 MessageBeep 声音时,Visual Basic 程序执行后面的代码。

MessageBeep API 函数接受一个参数可以具有下列值之一:
Parameter Value       Meaning
                            ---------------------------------------------------------------------------
                            -1                    Produces a standard beep sound by using the computer
                            speaker.
                            MB_ICONASTERISK       Plays the sound identified by the SystemAsterisk
                            entry in the [sounds] section of WIN.INI.
                            MB_ICONEXCLAMATION    Plays the sound identified by the SystemExclamation
                            entry in the [sounds] section of WIN.INI.
                            MB_ICONHAND           Plays the sound identified by the SystemHand
                            entry in the [sounds] section of WIN.INI.
                            MB_ICONQUESTION       Plays the sound identified by the SystemQuestion
                            entry in the [sounds] section of WIN.INI.
                            MB_OK                 Plays the sound identified by the SystemDefault
                            entry in the [sounds] section of WIN.INI.
                            

示例: 如何调用 MessageBeep API 函数

  1. 在 Visual Basic 中开始新项目。默认情况下创建 Form1。
  2. 双击 Form1。将以下内容添加到窗体加载事件代码:
       Sub Form_Load ()
                                    Const MB_ICONQUESTION = 32     ' Warning query. See CONSTANTS.TXT.
                                    Const MB_ICONEXCLAMATION = 48  ' Warning message.
                                    Const MB_YESNO = 4             ' Yes and No buttons
                                    MessageBeep MB_ICONEXCLAMATION      ' Plays waveform sound.
                                    MsgBox "Wow!", MB_ICONEXCLAMATION   ' Displays message box.
                                    MessageBeep MB_ICONQUESTION
                                    MsgBox "Yes or No?", MB_ICONQUESTION + MB_YESNO
                                    End
                                    End Sub
                                    NOTE: The MB_ICONQUESTION and MB_ICONEXCLAMATION values are the same for
                                    both the MessageBeep API function and the MsgBox statement. See the
                                    "Parameters for MsgBox Statement" section below.
                                    
  3. 从对象菜单中选择 (常规)。将以下 Declare 添加到常规声明节:
       Declare Sub MessageBeep Lib "User" (ByVal wType As Integer)
                                    
  4. 启动程序,或按 F5 键。MessageBeep 播放相应声音波形文件为每个消息框显示。

不被标准 Windows 声音事件

Windows 3.1 版允许您将波形音频声音指派给某些事件通过控制面板。这些事件是:
默认蜂鸣
感叹号
Windows 开始
Windows 退出
关键停止
问题
星号

取决于应用程序在发生系统声音。若要一个发声应用程序需要通知 Windows 要发生,然后让 Windows 的系统声音的播放的声音。应用程序将指定的七个默认系统声音的一项或它已添加到此列表中的任何声音事件。

这意味着您不能将声音的事件添加到默认的列表并具有播放发音的应用程序,除非应用程序专门编写调用该声音的事件。

此外,windows 的应用程序具有不标准化时应发生这些声音的事件。因此,一个应用程序可能会默认蜂鸣时播放声音时另一个应用程序可能播放紧急停止声音,就会出错。

MsgBox 语句的参数

Const MB_ICONSTOP = 16          ' Critical message; displays STOP icon.
                            Const MB_ICONQUESTION = 32      ' Warning query; displays ? icon.
                            Const MB_ICONEXCLAMATION = 48   ' Warning message; displays ! icon.
                            Const MB_ICONINFORMATION = 64   ' Information message; displays i icon.
                            Const MB_OK = 0                 ' OK button only
                            Const MB_OKCANCEL = 1           ' OK and Cancel buttons
                            Const MB_ABORTRETRYIGNORE = 2   ' Abort, Retry, and Ignore buttons
                            Const MB_YESNOCANCEL = 3        ' Yes, No, and Cancel buttons
                            Const MB_YESNO = 4              ' Yes and No buttons
                            Const MB_RETRYCANCEL = 5        ' Retry and Cancel buttons
                            Const MB_APPLMODAL = 0          ' Application Modal Message Box
                            Const MB_DEFBUTTON1 = 0         ' First button is default
                            Const MB_DEFBUTTON2 = 256       ' Second button is default
                            Const MB_DEFBUTTON3 = 512       ' Third button is default
                            Const MB_SYSTEMMODAL = 4096      'System Modal
                            

上述参数为 MsgBox 的语句还可以在任何下列源中找到:
  • Visual Basic 的帮助菜单,为 MsgBox 的语句的搜索。
  • CONSTANTS.TXT 文件中。
  • 页面 384 387 的"语言参考。

这篇文章中的信息适用于:
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Windows 3.1 标准版
关键字: 
kbmt KB110103 KbMtzh
机器翻译机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 110103  (http://support.microsoft.com/kb/110103/en-us/ )
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
Retired KB Article不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。
 


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多