c# - 如何使用 C Sharp 中的 WebBrowser 元素禁用点击声音?

标签 c# audio

我有一个事件,当被解雇时会执行以下操作:

htmlView.DocumentText = contentArea.Text;

问题是这个事件被触发了很多次,我得到了烦人的 IE“点击噪音”。我已经看到了一个解决方案 HowTo Disable WebBrowser 'Click Sound' in your app only 和另一个解决方案,但我对 C Sharp 还很陌生(只使用了几个小时),并且不确定是什么:


private const int FEATURE_DISABLE_NAVIGATION_SOUNDS = 21;
private const int SET_FEATURE_ON_THREAD = 0x00000001;
private const int SET_FEATURE_ON_PROCESS = 0x00000002;
private const int SET_FEATURE_IN_REGISTRY = 0x00000004;
private const int SET_FEATURE_ON_THREAD_LOCALMACHINE = 0x00000008;
private const int SET_FEATURE_ON_THREAD_INTRANET = 0x00000010;
private const int SET_FEATURE_ON_THREAD_TRUSTED = 0x00000020;
private const int SET_FEATURE_ON_THREAD_INTERNET = 0x00000040;
private const int SET_FEATURE_ON_THREAD_RESTRICTED = 0x00000080;

...

[DllImport("urlmon.dll")]
[PreserveSig]
[return:MarshalAs(UnmanagedType.Error)]
static extern int CoInternetSetFeatureEnabled(
    int FeatureEntry,
    [MarshalAs(UnmanagedType.U4)] int dwFlags,
    bool fEnable);

...的意思。我将该代码放在哪里?抱歉,我是 C Sharp 和 Visual Studio 的新手,希望能帮助新手理解。

谢谢!

最佳答案

您可以将其放入静态类中,并将 CoInternetSetFeatureEnabled 方法公开,或者添加一个额外的桥接方法,在将参数从更可用的形式转换后调用该方法(如有必要)。例如,在第一种情况下,它将是:

public static class UnmanagedCode
{
    private const int FEATURE_DISABLE_NAVIGATION_SOUNDS = 21;
    //etc...

    [DllImport("urlmon.dll")]
    [PreserveSig]
    [return:MarshalAs(UnmanagedType.Error)]
    public static extern int CoInternetSetFeatureEnabled(
        int FeatureEntry,
        [MarshalAs(UnmanagedType.U4)] int dwFlags,
        bool fEnable);
}

关于c# - 如何使用 C Sharp 中的 WebBrowser 元素禁用点击声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1720902/

相关文章:

c# - 如何在 Exchange EWS 中保存 ItemAttachment 对象中附加的 EmailMessage?

c# - 连接两个字典

c# - 如何处理封装了一次性实例的类?

android - Cast SDK - 使用本地文件

audio - 在音频编程环境中音高和速度是一回事吗?

jquery - jQuery播放声音并转到下一页

python - 使用Pyqt4和QSound播放声音

c# - 在 MonoDevelop 中学习 C# 有什么缺点吗?

c# - 处理静电刷

xcode - 核心音频SDK,Xcode 5.1