如何禁用c#消息框哔声?
每当触发我的C#程序中使用的消息框时,我的计算机都会发出非常恼人的哔声。 如何使用C#代码禁用此蜂鸣声。
我使用的代码非常简单。
MessageBox.show("text");
从搜索到我已经完成它看起来像蜂鸣声硬连线到Win32消息框function:
因此,您需要编写自己的方法或停止硬件中的蜂鸣声。 前者适用于所有人,后者适合您。
这就是我解决这个小问题的方法。
将这个简单的类添加到您的项目中。 它现在是我个人库的一部分,但您可以直接在项目中添加该类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace MyCSharpLibrary { public class Volume { [DllImport("winmm.dll")] public static extern int waveOutGetVolume(IntPtr h, out uint dwVolume); [DllImport("winmm.dll")] public static extern int waveOutSetVolume(IntPtr h, uint dwVolume); private static uint _savedVolumeLevel; private static Boolean VolumeLevelSaved = false; // ---------------------------------------------------------------------------- public static void On() { if (VolumeLevelSaved) { waveOutSetVolume(IntPtr.Zero, _savedVolumeLevel); } } // ---------------------------------------------------------------------------- public static void Off() { waveOutGetVolume(IntPtr.Zero, out _savedVolumeLevel); VolumeLevelSaved = true; waveOutSetVolume(IntPtr.Zero, 0); } } }
现在在调用MessageBox和Volume.On()之后调用Volume.Off()
Volume.Off(); MessageBox.Show("n Information n", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); Volume.On();
我更喜欢这种方法,因为我不需要对Windows进行修改,我可以为MessageBoxes选择任何我想要的图标。
谢谢你,再见
在您尝试之前,这听起来很奇怪。 打开命令提示符,键入:
net stop beep
我做了一个快速的谷歌,并找到了4个其他方式:
- 本地机器:sc停止蜂鸣&& sc config beep start = disabled
- 远程机器:sc remoteMachine停止蜂鸣&& sc remoteMachine配置beep start = disabled
- 需要重启:设备管理器 – >查看 – >显示隐藏设备 – >非即插即用 – >蜂鸣声 – >禁用
- 使用TweakUI:常规>设置 – >取消选中错误上的蜂鸣声
(从这里)
尝试使用VisualBasic MsgBox类而不是MessageBox。 我无法解释原因,但在我的计算机上,VisualBasic并没有发出哔哔声。
https://msdn.microsoft.com/en-us/library/sfw6660x%28VS.85%29.aspx
所以代替:
MessageBox.Show("text")
做:
MsgBox("text")
您必须从Microsoft.VisualBasic导入MsgBox函数,而不是从System.Windows.Forms导入MessageBox。 但那应该不是问题; 它是.NET API的一部分。
编辑:好的,现在我可以解释一下。 缺少声音是因为默认情况下,MessageBox的VB版本未修饰(即,它不是信息,问题等)。 我假设毕竟没有真正需要使用VB MsgBox类 – 可能如果你使常规的旧MessageBox未修饰,它也不会发出任何声音。 ?
您应该将它留给最终用户来决定他想要的声音。 他可以为系统事件配置/禁用声音,例如控制面板/声音和音频设备/声音/节目事件中的消息框。
停止蜂鸣声服务需要管理权限,而不是通常只为一个应用程序执行的操作。
如果您确实要使用自定义对话框来替换MessageBox,请记住实现CTL-C(将消息框内容复制到剪贴板)。
根据您使用MessageBox(图标等)的程度,您可以随时进行自定义对话。 特别是如果它是一个你想要显示的简单信息,这将不困难或耗时。
尽管这个问题很老,但我遇到了同样的问题,但能够以一种非常简单的方式解决它。
MessageBox.Show("Your text here", "Information", MessageBoxButtons.OK, MessageBoxIcon.None);
通过将MessageBoxIcon
设置为None
,系统不会产生声音。 但是,盒子上没有图标。 像这样的东西。
上述就是C#学习教程:如何禁用c#消息框哔声?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1252382.html