zoukankan      html  css  js  c++  java
  • C#功能扩张方式

    有时候,为了完成一些window的一些操作,需要引入一些dll进行操作

    1)  引入系统api进行操作,形如[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]  ,包括findWindow找到窗口句柄,以及下面的改变浏览器的UserAgent

    [DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
    private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved);

    const int URLMON_OPTION_USERAGENT = 0x10000001;

    2) 引入COMdll,如增加相应事件的监听功能,下面是增加导航错误处理事件 

    1.  [ComImport, Guid("34A715A0-6587-11D0-924A-0020AFC7AC4D"),  
    2.     InterfaceType(ComInterfaceType.InterfaceIsIDispatch),  
    3.     TypeLibType(TypeLibTypeFlags.FHidden)]  
    4.     public interface DWebBrowserEvents2  
    5.     {  
    6.         [DispId(271)]  
    7.         void NavigateError(  
    8.             [In, MarshalAs(UnmanagedType.IDispatch)] object pDisp,  
    9.             [In] ref object URL, [In] ref object frame,  
    10.             [In] ref object statusCode, [In, Out] ref bool cancel);  
    11.     }  

    com英文为Component Object Model(组件对象模型),是微软生产软件组件的标准。它是构造二进制兼容软件组件的规范,不管组件应用何种语言编写只要遵循com规范就可以相互直接通信

  • 相关阅读:
    再谈H2的MVStore与MVMap
    log4j动态日志级别调整
    wireshark抓文件上传的包的结果记录
    struts2对properties资源的处理
    Spring core resourc层结构体系及JDK与Spring对classpath中资源的获取方式及结果对比
    [工具使用] visualvm 通过jmx不能连接
    oracle 安装 启动listener 建库相关
    vscode
    XSSFWorkbook
    TearmQuery()
  • 原文地址:https://www.cnblogs.com/wwwfj/p/3682161.html
Copyright © 2011-2022 走看看