Windows 8 Embedded Standard中的内部扬声器发出蜂鸣声

时间:2017-03-03 10:19:20

标签: c# beep windows-embedded-8

我有一个运行32位版Windows Embedded 8 Standard的工业面板。需要使用内置扬声器发出哔哔声。连接外部扬声器不是一种选择。

以前这是运行基于XP的Windows Embedded Standard并使用Console.Beep在C#中将使用内置扬声器。但是,在Windows 8 Embedded Standard中,尽管没有连接,但似乎使用外部扬声器。

内部扬声器仍在运行 - 触摸屏驱动器(eGalaxTouch)在点击屏幕时仍然使用内置扬声器,但我不能在自己的应用程序中复制它。

我在C#应用程序中尝试了以下操作但没有效果;

Console.Beep()
MessageBeep() (user32.dll)
Beep() (kernel32.dll)
SystemSounds.Beep.Play()

我知道从Windows 7 64位开始这是不可能的,但我在这里使用的是32位操作系统,它仍适用于触摸屏?

虽然C#/ .NET中的解决方案是理想的,但我会选择其他解决方案(C / C ++ /无论如何)。

1 个答案:

答案 0 :(得分:0)

通常在发布问题后不久,我找到答案......

基本上,使用' Beep.sys'来自Windows(XP)Embedded Standard的文件代替Windows 8 Embedded版本,允许Console.Beep按预期工作。

harrymc回答了下面的类似问题https://superuser.com/a/230167/83606。请注意,没有' Beep' Windows 8(嵌入式)中设备管理器中的设备,但过程类似。

来自Default Beep PC Speaker changed in windows 7 – How to get back to old style

  

默认蜂鸣声由a控制   司机下,   eclipselink 2.6.4。   也许如果你把它改成了   来自XP / Vista的驱动程序会增加   音量。

     

要查看此驱动程序,您必须打开   设备管理器然后点击View>   显示隐藏的设备。然后在   您将看到非即插即用驱动程序   “嘟嘟。”这是运行的驱动程序   你的嘟嘟声然后右键单击它   选择属性并转到驱动程序   选项卡,然后单击驱动程序详细信息   这显示了文件版本   看起来它已经改变了   Windows 7.所以用一个替换它   旧版本,看看会发生什么。

     

要遵循的程序:

     
      
  1. 从UBCD4WIN光盘(或BartPE,如果您没有SATA硬盘)启动   驱动)
  2.   
  3. 取得“C:\ Windows \ System32 \ Drivers \ Beep.sys”的所有权   文件并给当地人   “管理员”组“完全控制”   权限。
  4.   
  5. 将“Beep.sys”重命名为“Beep.old”(以防万一)
  6.   
  7. 将“Beep.sys”从XP计算机复制到此位置。
  8.