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规范就可以相互直接通信

posted @ 2014-04-23 09:31  youhumian  阅读(363)  评论(0编辑  收藏  举报