代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C#
】
监听IE文档加载完成、弹窗、JS弹窗、页面跳转
作者:
宝清
/ 发布于
2017/4/28
/
580
监听IE文档加载完成、弹窗、JS弹窗、页面跳转
由于需要对HTML等对象进行操作,所以需要引用: using mshtml; using SHDocVw; 以下是事件绑定和处理的代码: static ShellWindows shellWindows; static void Main(string[] args) { if (shellWindows == null) { shellWindows = new ShellWindows(); } shellWindows.WindowRegistered += new DShellWindowsEvents_WindowRegisteredEventHandler(Register); Console.WriteLine("正在监听IE..."); Console.ReadKey(); } static void Register(int ICookie) { for (int i = shellWindows.Count - 1; i >= 0; i--) { InternetExplorer ie = shellWindows.Item(i) as InternetExplorer; string filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower(); if (filename.Equals("iexplore")) { string strUrl = ie.LocationURL;//IE8 url为打开IE的实际路径 但是IE7这里是""只能在 //ie.NavigateComplete2 += new DWebBrowserEvents2_NavigateComplete2EventHandler(BeforeNavigate); break;//因为最后一个一定是最新创建的(自己测试后的结论)注意这里我是从后面遍历的找到最新创建的就退出循环 保证只处理新创建的IE 保证每个实例在这里只遍历一次 ie.NewWindow2 += new DWebBrowserEvents2_NewWindow2EventHandler(ie_NewWindow2); ie.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(ie_BeforeNavigate2); ie.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(ie_DocumentComplete); break; } } } static void ie_BeforeNavigate2(object pDisp, ref object URL, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel) { if (URL.ToString().Contains("baidu")) { Console.WriteLine("跳转:" + URL.ToString()); Cancel = true; object missing = Type.Missing; ((WebBrowser)pDisp).Navigate("http://www.fangsi.net", ref missing, ref missing, ref missing, ref missing); } } static WebBrowser wb = new WebBrowser(); static void ie_NewWindow2(ref object ppDisp, ref bool Cancel) { ppDisp = wb; Console.WriteLine("新开页面"); if (wb.LocationURL.ToString().Contains("baidu")) { Cancel = true; object missing = Type.Missing; wb.Navigate("http://www.fangsi.net", ref missing, ref missing, ref missing, ref missing); } } static void ie_DocumentComplete(object pDisp, ref object URL) { HTMLDocument doc = (HTMLDocument)((WebBrowser)pDisp).Document; Console.WriteLine("完成加载:" + doc.title + "(" + URL.ToString() + ")"); }
试试其它关键字
同语言下
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
可能有用的
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
宝清
贡献的其它代码
(
78
)
.
Java 获取Linux 的IP地址
.
FTP服务器上的文件上传、下载、删除操作
.
监听IE文档加载完成、弹窗、JS弹窗、页面跳转
.
防盗链
.
Hive 典型的中表内数据除重写法
.
判断一个时间段内有多少个周末
.
生成验证码
.
ServiceHelper-Windows服务辅助类
.
IE 6下修复PNG格式的透明度
.
居中对齐并设置固定宽度
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3