【问题标题】:.Net WinForm System Beep on a 64 Bit OS.Net WinForm 系统在 64 位操作系统上发出蜂鸣声
【发布时间】:2010-12-02 02:11:56
【问题描述】:

当验证失败时,我的应用程序需要发出哔哔声,以便用户(可能在几英尺外)可以听到它。我想使用Console.Beep(),但这是unavailable in a x64 environment (see the remarks)。计算机中可能有也可能没有扬声器,所以我不能使用System.Media.SystemSounds.Beep.Play()

当前的目标平台是 x86 环境,但我希望应用程序也能够在 x64 中运行。

有没有办法做到这一点,还是我应该放弃?

编辑:添加了方法的链接。

【问题讨论】:

  • 请告诉我,为什么 Console.Beep() 不能在 x64 环境中工作?

标签: .net windows 64-bit beep


【解决方案1】:

Beep has been removed 作为所有 x64 平台的本机函数(因此当然没有托管版本),有一个 Microsoft Connect 问题请求返回它。

我们使用不同的技巧来发现服务器,我们远程弹出 dvd 驱动器,托盘打开的驱动器就是我们要寻找的驱动器 :)

[编辑]
Larry Osterman 对此有一篇很棒的文章:What's up with the beep driver in Windows 7

【讨论】:

  • 所以没有办法在 x64 平台上强制发出哔声?
  • 看起来像,可能有第 3 方哔声驱动程序,但我找不到。
【解决方案2】:

播放标准窗口声音之一可能是更好的方法。下面的文章展示了如何(只需要几行):

http://msdn.microsoft.com/en-us/library/4y171b18(VS.100).aspx

如果您想留在主题中,您可以检查 Windows 注册表以获取当前声音方案,并播放适合您需要的声音。

【讨论】:

  • 我不知道将要使用的机器是否有扬声器或不会静音(如我的机器),否则这将是一个不错的选择。
  • 从用户的角度来看,如果我没有将烦人的应用程序声音静音的选项,我会非常沮丧。我认为拥有该选项对用户来说是一笔巨额奖金。尝试控制用户听到的内容以及用户屏幕上弹出的内容是个坏主意。微软多年来一直在微调这些功能,以便让用户最大限度地控制此类烦人的事情。
  • 这是来自用户的请求。他们抱怨在以前的版本中出现错误时无法听到。现在我的任务是更新,我需要解决这些问题。
  • 但我完全同意,这就是为什么我总是让我的电脑静音,除非我在看东西。
【解决方案3】:

您可以使用此处描述的Console.Beep() 方法:https://msdn.microsoft.com/en-us/library/8hftfeyw(v=vs.110).aspx

确保您以管理员身份运行可执行文件(提升权限)

【讨论】:

  • 让我引用 OP:“我想使用 Console.Beep() 但这在 x64 环境中不可用(请参阅备注) ".下次先读题。
  • i.imgur.com/Sse3LxD.png 这是否符合 x64 操作系统的条件?在假设我没有先阅读问题之前,您如何尝试我建议的方法。当然,我没有运行 Vista 或 XP,但 .Beep() 运行在 x64 操作系统上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
相关资源
最近更新 更多