Beep 函数 (utilapiset.h)

在扬声器上生成简单的音调。 函数是同步的;它执行可警报等待,在声音完成之前不会将控制权返回到其调用方。

语法

BOOL Beep(
  [in] DWORD dwFreq,
  [in] DWORD dwDuration
);

参数

[in] dwFreq

声音的频率,以Hz为单位。 此参数的范围必须介于 37 到 32,767 (0x25 到 0x7FFF) 。

[in] dwDuration

声音的持续时间(以毫秒为单位)。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

很久以前,所有 PC 计算机共享一个通用的 8254 可编程间隔计时器芯片,用于生成原始声音。 Beep 函数是专门为在硬件上发出蜂鸣音而编写的。

在这些较旧的系统上,静音和音量控制对 蜂鸣音没有影响;你仍然会听到语气。 若要使语气静音,你使用了以下命令:

net stop beep

sc config beep start= disabled

自那时以来,声卡已成为几乎所有电脑计算机上的标准设备。 随着声卡越来越普遍,制造商开始从计算机中删除旧的计时器芯片。 芯片也排除在服务器计算机的设计之外。 结果是 ,没有芯片,Beep 无法在所有计算机上工作。 这没关系,因为大多数开发人员已经转向调用 MessageBeep 函数,该函数使用任何默认声音设备,而不是 8254 芯片。

最终,由于缺少要通信的硬件,Windows Vista 和 Windows XP 64 位版中放弃了对 Beep 的支持

在 Windows 7 中, 已重写 Beepep ,以便将蜂鸣声传递到会话的默认声音设备。 这通常是声音卡,除非在终端服务下运行时,在这种情况下,客户端上呈现蜂鸣音。

示例

以下示例说明了此函数的用法。

Beep( 750, 300 );

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 utilapiset.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

错误处理函数

MessageBeep

通知用户