无论何时触发我的C#程序中使用的消息框,我的计算机都会发出非常烦人的嘟嘟声。如何使用C#代码禁用此嘟嘟声。如何禁用c#消息框嘟嘟声?
我使用的代码非常简单。
MessageBox.show("text");
无论何时触发我的C#程序中使用的消息框,我的计算机都会发出非常烦人的嘟嘟声。如何使用C#代码禁用此嘟嘟声。如何禁用c#消息框嘟嘟声?
我使用的代码非常简单。
MessageBox.show("text");
这听起来很奇怪,直到你尝试过它。打开命令提示符下,键入:
net stop beep
我做了一个快速谷歌和发现了其他4种方式:
+1也许有点笨重,这取决于需要。 – kenny 2009-11-16 00:34:33
根据您利用MessageBox(图标等)的多少,您始终可以创建自定义对话框。特别是如果它是一个简单的消息,你想要显示,这并不困难或耗时。
你应该让它给最终用户来决定他想要什么声音。 他可以配置/禁用系统事件的声音,例如控制面板/声音和音频设备/声音/程序事件中的消息框。
停止哔声服务需要管理权限,而且通常不会为一个应用程序执行某些操作。
如果您确实需要自定义对话框来替换MessageBox,请记得执行CTL-C(复制邮箱内容到剪贴板)。
尝试使用VisualBasic MsgBox类而不是MessageBox。我无法解释为什么,但在我的电脑上,VisualBasic没有发出哔声。
http://msdn.microsoft.com/en-us/library/sfw6660x%28VS.85%29.aspx
所以不是:
MessageBox.Show("text")
做:
MsgBox("text")
你必须从Microsoft.VisualBasic程序导入MsgBox函数,而不是从系统导入的MessageBox。 Windows.Forms的。但这不应该是一个问题;它是.NET api的一部分。
编辑:阿好,现在我可以解释它。缺乏声音是因为默认情况下,MessageBox的VB版本是未修饰的(即它不是信息性的,问题等)。我假设根本没有必要使用VB MsgBox类 - 可能如果您将常规的旧MessageBox装饰成未修饰的,它也不会发出任何声音。 :)
下面是我如何解决这个小问题。
添加这个简单的类项目。这是我的个人库的一部分,但现在你可以直接在项目中添加类
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);
}
}
}
现在,经过
Volume.Off();
MessageBox.Show("\n Information \n", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
Volume.On();
调用的MessageBox和Volume.On()之前调用Volume.Off()我喜欢这种方法,因为我不必对Windows进行修改,我可以选择任何我想要用于我的MessageBox的图标。
谢谢,再见
使用方法将导致整个窗口音量静音,如果用户正在听音乐怎么办?他会静一会儿 – advapi 2017-07-26 06:22:12
尽管这个问题是老我有同样的问题,但能够解决它的一个非常简单的方法。
MessageBox.Show("Your text here", "Information", MessageBoxButtons.OK, MessageBoxIcon.None);
通过将MessageBoxIcon
设置为None
,系统不会产生声音。但是,盒子上没有图标。类似于this。
我相信没有办法控制这个单独的消息框;这是一个窗口设置。这是否使这个问题属于superuser.com? – dtb 2009-11-15 22:00:34
我在问是否有任何C#代码可以写入,以使哔声离开我的程序。我并没有要求只针对我的系统进行设置。我会澄清我的问题。 – 2009-11-15 22:05:33