Windows 8 Embedded Standard中的内置扬声器提示音 [英] Internal Speaker Beep in Windows 8 Embedded Standard
问题描述
我有一个运行32位版本的Windows Embedded 8 Standard的工业面板.需要使用内置扬声器发出哔声.无法连接外部扬声器.
I've got an industrial panel which running a 32-bit version of Windows Embedded 8 Standard. It is required to use the internal speaker to make beep sounds. Connecting external speakers is not an option.
以前,这是基于XP的Windows Embedded Standard并使用Console.Beep in C#将使用内部扬声器.但是,在Windows 8 Embedded Standard中,尽管没有连接,但它似乎改用了外部扬声器.
Previously this was running XP based Windows Embedded Standard and using Console.Beep in C# will use the internal speaker. However in Windows 8 Embedded Standard this seems to use the external speakers instead, despite not being connected up.
内部扬声器仍可运行-触摸屏驱动程序(eGalaxTouch)在点击屏幕时仍使用内部扬声器,但是我无法在自己的应用程序中复制它.
The internal speaker is still operational - the touchscreen driver (eGalaxTouch) still uses the internal speaker when tapping the screen, however I cannot replicate this in my own application.
我已经在C#应用程序中尝试了以下操作,但没有效果;
I've tried the following from a C# application with no effect;
Console.Beep()
MessageBeep() (user32.dll)
Beep() (kernel32.dll)
SystemSounds.Beep.Play()
我知道从64位Windows 7起,这是不可能的,但是我在这里使用的是32位操作系统,它仍然可以在触摸屏上使用吗?
I understand this is not possible from Windows 7 64-bit onwards, but I'm using 32-bit OS here and it still works with the touchscreen?
尽管使用C#/.NET解决方案是理想的,但我愿意使用其他解决方案(C/C ++/其他).
While a solution in C#/.NET would be ideal, I'd be up for other solutions (C/C++/whatever).
推荐答案
通常在发布问题后不久,我就会找到答案...
Typically shortly after posting the question, I find an answer...
基本上,使用Windows(XP)嵌入式标准中的'Beep.sys'文件代替Windows 8 Embedded版本,可以使Console.Beep正常工作.
Basically, using the 'Beep.sys' file from the Windows (XP) Embedded Standard in place of the Windows 8 Embedded version allows Console.Beep to work as expected.
harrymc对类似问题 https://superuser.com/a/230167/83606 的回答.请注意,Windows 8(嵌入式)的设备管理器中没有哔哔"设备,但其他过程类似.
harrymc's answer to a similar question https://superuser.com/a/230167/83606 below. Note that there is no 'Beep' device in the device manager in Windows 8 (Embedded), but the procedure is otherwise similar.