zoukankan      html  css  js  c++  java
  • 黄聪:C#禁止Webbrowser中的脚本错误提示,自动屏蔽弹出窗口

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;
    
    namespace Hcsem
    {
    
        public class MyWebBrowser : System.Windows.Forms.WebBrowser
        {
            #region ExtendedWebBrowserSite
            class ExtendedWebBrowserSite : WebBrowser.WebBrowserSite, UnsafeNativeMethods.IDocHostShowUI
            {
                public ExtendedWebBrowserSite(WebBrowser host)
                    : base(host)
                {
                }
                void UnsafeNativeMethods.IDocHostShowUI.ShowMessage(ref UnsafeNativeMethods._RemotableHandle hwnd, string lpstrText, string lpstrCaption, uint dwType, string lpstrHelpFile, uint dwHelpContext, out int plResult)
                {
                    plResult = 0;
                    //TODO:自定义 
                }
                void UnsafeNativeMethods.IDocHostShowUI.ShowHelp(ref UnsafeNativeMethods._RemotableHandle hwnd, string pszHelpFile, uint uCommand, uint dwData, UnsafeNativeMethods.tagPOINT ptMouse, object pDispatchObjectHit)
                {
                    //TODO:自定义 
                }
            }
    
            protected override WebBrowserSiteBase CreateWebBrowserSiteBase()
            {
                return new ExtendedWebBrowserSite(this);
            }
            #endregion
        }
    
        public class UnsafeNativeMethods
        {
            #region IDocHostShowUI
            [StructLayout(LayoutKind.Explicit, Pack = 4)]
            public struct __MIDL_IWinTypes_0009
            {
                // Fields 
                [FieldOffset(0)]
                public int hInproc;
                [FieldOffset(0)]
                public int hRemote;
            }
    
            [StructLayout(LayoutKind.Sequential, Pack = 4)]
            public struct _RemotableHandle
            {
                public int fContext;
                public __MIDL_IWinTypes_0009 u;
            }
    
            [StructLayout(LayoutKind.Sequential, Pack = 4)]
            public struct tagPOINT
            {
                public int x;
                public int y;
            }
    
            [ComImport, Guid("C4D244B0-D43E-11CF-893B-00AA00BDCE1A"), InterfaceType((short)1)]
            public interface IDocHostShowUI
            {
                [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
                void ShowMessage([In, ComAliasName("ExtendedWebBrowser2.UnsafeNativeMethods.wireHWND")] ref _RemotableHandle hwnd, [In, MarshalAs(UnmanagedType.LPWStr)] string lpstrText, [In, MarshalAs(UnmanagedType.LPWStr)] string lpstrCaption, [In] uint dwType, [In, MarshalAs(UnmanagedType.LPWStr)] string lpstrHelpFile, [In] uint dwHelpContext, [ComAliasName("ExtendedWebBrowser2.UnsafeNativeMethods.LONG_PTR")] out int plResult);
                [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
                void ShowHelp([In, ComAliasName("ExtendedWebBrowser2.UnsafeNativeMethods.wireHWND")] ref _RemotableHandle hwnd, [In, MarshalAs(UnmanagedType.LPWStr)] string pszHelpFile, [In] uint uCommand, [In] uint dwData, [In] tagPOINT ptMouse, [Out, MarshalAs(UnmanagedType.IDispatch)] object pDispatchObjectHit);
            }
            #endregion
    
        }
    }
  • 相关阅读:
    发现维护的自己编写linux 系统检查脚本一个bug (syslog\message)
    循环while for
    字面量(常量)和变量的区别
    网页配色方法
    Dedecms v5.7 CKEditor编辑器回车键换行改为分段
    JS控制密码框获取焦点时文字消失,失去焦点时文字出现
    JS实现选项卡
    JS实现全选、不选、反选
    JS点击显示隐藏内容
    ASP连接MSSQL代码
  • 原文地址:https://www.cnblogs.com/huangcong/p/4172154.html
Copyright © 2011-2022 走看看