有时候,为了完成一些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,如增加相应事件的监听功能,下面是增加导航错误处理事件
- [ComImport, Guid("34A715A0-6587-11D0-924A-0020AFC7AC4D"),
- InterfaceType(ComInterfaceType.InterfaceIsIDispatch),
- TypeLibType(TypeLibTypeFlags.FHidden)]
- public interface DWebBrowserEvents2
- {
- [DispId(271)]
- void NavigateError(
- [In, MarshalAs(UnmanagedType.IDispatch)] object pDisp,
- [In] ref object URL, [In] ref object frame,
- [In] ref object statusCode, [In, Out] ref bool cancel);
- }
com英文为Component Object Model(组件对象模型),是微软生产软件组件的标准。它是构造二进制兼容软件组件的规范,不管组件应用何种语言编写只要遵循com规范就可以相互直接通信