关于屏蔽系统声音 我想在一个winform中无论点什么按什么都别让那难听的“当当”的系统声音出来请问有什么api可以用吗?非常感谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 修改用户的设定.因为这个 当 当 的声音是用户在系统中设定的控制面板 --> 声音与音频设备 --> 声音 --> 选择为 "无声方案"或者修改用户注册表,修改完毕,他重启就是无声方案了,不过这样会被用户抱怨的 多谢楼上各位。不过我是想让一个form不要发出系统声音,不能调节windows音量的,不然有搞破坏之嫌 - - http://www.vjsdn.com/bbs/html/090803_520.html 多谢libiguest,但是您给的不是我想要的哦。不是想设置静音啦。。只是屏蔽一个form的系统声音哦 不只是弹出框哦,很多系统声音,还比如你在textbox里按了回车键发出的等等 说实在的 我没做过这个东西,不过建议你看下windows api 应该在你操作的时候调用了某些api 你可以做个钩子 拦截这样的操作这仅仅是我的想法 未做过实际测试 按照下面的方法,可以实现楼主的声音控制效果。在软件运行期间,可以禁止系统发警告声,但不影响MP3、VCD发声。(1)软件开始中运行,操作注册表 禁止Windows发出的警告声(2)软件退出前,恢复原始键值.(3)附注册表相关子键: HEKY—CURRENT—USER\Control Panel\Sound Beep 值NO,表示禁止发出声音;YES,表示允许发出声音。(4)C#操作注册表相关类:RegistryKey 相关方法 SetValue()太晚了,自己完成代码吧 多谢楼上两位深夜相助。总体上来说,lzsh0622的方法感觉不是最理想,主要是我只是希望屏蔽部分form的系统声音,而不是整个软件中都不要系统声音,如果操作注册表的话太过频繁了。sjzlxd说的利用系统钩子拦截部分windows消息应该是个比较好的方法,就是对这些api不是很熟悉,请问具体使用哪些函数呢? private void TextBox1_KeyPress(object sender, KeyPressEventArgs e) { //设置按Enter键和Esc键不发出Beep声音 if (e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.Escape) { e.Handled = true; } } BitCoffee兄弟的方法是让textBox不发声音,但是还有不少其他空间是不是有比价彻底的方法,比如先[dllImport xxx.dll] 然后调用一下,设置下mute然后就都没系统声音了。。这样方便我比较彻底地换 api就想做?看看硬件编程吧DDK 大型服务器是如何解决多用户连接的? 数据字典设计问题 数组遍历 我调试程序的时候提示检测到LoaderLock是什么意思啊? 在vs 2008中 NavBar控件 根接点有连接时,子接点展不开???? C# XML操作类 用C#创建一个xml文件,自定义的xmlns没有写到元素当中去,为什么? 关于sql server 2005 安装 求Windows Sever 2003 简体中文版的下载链接? 怎么在C#一个类中控制它的窗体类阿 看C#入门经典书中例子问题请教 高分求解连接远程sql2000的问题
因为这个 当 当 的声音是用户在系统中设定的
控制面板 --> 声音与音频设备 --> 声音 --> 选择为 "无声方案"或者修改用户注册表,修改完毕,他重启就是无声方案了,不过这样会被用户抱怨的
不过建议你看下windows api 应该在你操作的时候调用了某些api 你可以做个钩子 拦截这样的操作这仅仅是我的想法 未做过实际测试
(2)软件退出前,恢复原始键值.
(3)附注册表相关子键:
HEKY—CURRENT—USER\Control Panel\Sound Beep
值NO,表示禁止发出声音;YES,表示允许发出声音。
(4)C#操作注册表相关类:RegistryKey 相关方法 SetValue()太晚了,自己完成代码吧
总体上来说,lzsh0622的方法感觉不是最理想,主要是我只是希望屏蔽部分form的系统声音,而不是整个软件中都不要系统声音,如果操作注册表的话太过频繁了。
sjzlxd说的利用系统钩子拦截部分windows消息应该是个比较好的方法,就是对这些api不是很熟悉,请问具体使用哪些函数呢?
private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//设置按Enter键和Esc键不发出Beep声音
if (e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.Escape)
{
e.Handled = true;
}
}
然后调用一下,设置下mute然后就都没系统声音了。。这样方便我比较彻底地换
看看硬件编程吧DDK