Windows Server 2012是否支持Beep()winapi函数?

Windows Server 2012是否支持Beep()winapi函数?,windows,winapi,beep,Windows,Winapi,Beep,我的办公室最近从运行Windows 7过渡到使用Windows Server 2012上运行的远程桌面会话。我使用的一些VBA宏包括对Windows API中“Beep”函数的调用,我将其用作执行已完成的音频警报。这是“哔哔”的版本,接收频率参数和持续时间参数,并在该持续时间内以Hz为单位播放该频率的哔哔声。但是,在新系统上,不会播放声音,调用函数后也不会延迟。Microsoft是否删除了Server 2012中的蜂鸣功能 编辑:这是一个与Windows 7中有关Beep的链接讨论不同的问题。我

我的办公室最近从运行Windows 7过渡到使用Windows Server 2012上运行的远程桌面会话。我使用的一些VBA宏包括对Windows API中“Beep”函数的调用,我将其用作执行已完成的音频警报。这是“哔哔”的版本,接收频率参数和持续时间参数,并在该持续时间内以Hz为单位播放该频率的哔哔声。但是,在新系统上,不会播放声音,调用函数后也不会延迟。Microsoft是否删除了Server 2012中的蜂鸣功能

编辑:这是一个与Windows 7中有关Beep的链接讨论不同的问题。我以前在Windows7上使用此代码时没有任何问题。我已检查计算机的扬声器是否已打开,是否已插入,以及系统音量是否已静音。这里的行为是Beep()被视为null;执行时不会发生任何事情。如果声音只是静音,代码至少会延迟到指定的毫秒数;相反,Beep()被跳过,就像我的代码中根本没有它一样。以以下代码为例:

Sub beepTest()
k = Beep(523, 5000)
MsgBox("All Done!")
End Sub

在旧的Windows7系统上,电脑会在插入的扬声器上播放一个音调5秒钟,然后弹出消息框。但是,在Server 2012 RDP内部运行时,对Beep()的调用基本上被忽略,消息框会立即出现,没有5秒延迟。这意味着它可以而不是仅仅是一个未插电或静音的声音设备;如果是,则不会听到声音,但仍会有延迟,类似于调用Sleep()函数。我想知道微软是否可能在Server 2012中删除了对该API的支持,这可以解释为什么我的代码不能按预期工作。

现在,蜂鸣功能通常会传送到电脑的声卡。您是否将远程桌面会话配置为“在此计算机上播放”而不是“在远程计算机上播放”?是否在本地和远程计算机上适当调整了音量设置?所有其他声源以适当的音量播放。唯一的问题是Beep功能。如果失败,
Beep
将返回零。如果是,则应提供出错原因的详细信息。