我有一个运行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 ++ /无论如何)。
答案 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.所以用一个替换它 旧版本,看看会发生什么。
要遵循的程序:
- 从UBCD4WIN光盘(或BartPE,如果您没有SATA硬盘)启动 驱动)
- 取得“C:\ Windows \ System32 \ Drivers \ Beep.sys”的所有权 文件并给当地人 “管理员”组“完全控制” 权限。
- 将“Beep.sys”重命名为“Beep.old”(以防万一)
- 将“Beep.sys”从XP计算机复制到此位置。
醇>