webbrowser访问网站禁止弹窗

用webbrowser访问网站时,如果网站有alert,window.open之类的JS,会在桌面上出现弹出框,并且必须点掉才会完成访问.
我在网上找了屏蔽这些弹出框的方法,就是添加事件Navigated,在里面重新定义这些函数.像下面这样

WebBrowser wbWebBrowser = new WebBrowser();
wbWebBrowser.Navigated += new WebBrowserNavigatedEventHandler(wbWebBrowser_Navigated);
......

private void wbWebBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e) //屏蔽alert等弹框弹窗的情况
{
WebBrowser wbWebBrowser = (WebBrowser)sender;
StringBuilder sb = new StringBuilder();
sb.AppendLine("function alert(){return;}");
sb.AppendLine("function confirm(){return;}");
sb.AppendLine("function showModalDialog(){return;}");
sb.AppendLine("function window.open(){return;}");
sb.AppendLine("function prompt(){return;}");
string strJS = sb.ToString();
IHTMLWindow2 win = (IHTMLWindow2)wbWebBrowser.Document.Window.DomWindow;
win.execScript(strJS, "Javascript");
win = null;
}

我在自己电脑上试的时候发现确实有效果,不加的话访问有弹出框的网站就会弹出内容.加了以后就不会弹出,可以正常访问完成了.

但把生成的EXE文件放到别人电脑上,他们运行之后都依然会弹出提示框.并且他们装的系统,和配置,跟我自己电脑上的好像也都差不多.

目前我测试发现的规律是,似乎安装了visual studio的电脑就会像我自己电脑一样不弹窗,没安装的就会弹,即使他们装了.net framework也是会弹窗的.

请问这是什么原因呢

我知道原因了,原来是安装了.NET SDK的机器上自带Microsoft.mshtml.dll.
只安装了.NET framework的机器上没有,需要把
C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll
放到和EXE文件同一目录下,才可以

时间: 2024-10-16 20:41:04

webbrowser访问网站禁止弹窗的相关文章

apache2.4 只允许合法域名访问网站 禁止使用ip、非法域名访问

1.ip访问禁用ip访问 只能对应端口有效<VirtualHost *:80> ServerName xx.xx.xx.xx ServerAlias * <Location /> Order Allow,Deny Deny from all </Location></VirtualHost><VirtualHost *:8511> ServerName xx.xx.xx.xx ServerAlias * <Location /> Or

Nginx禁止直接通过IP地址访问网站(关闭默认站点或空主机头)

这篇文章主要介绍了Nginx中禁止使用IP访问网站的配置实例,一般在备案时可能需要这种设置,需要的朋友可以参考下 国内因为备案的原因,所有服务器都要禁止使用IP访问网站.否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了.这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟来跟大家一起探讨一下. 如下的配置项,可以设置允许使用IP访问网站. server { listen 80; server_name ""; } 这里相当于是绑定了一

apache 2.4 配置httpd:添加域名禁止IP访问网站

apache 2.4 配置httpd:添加域名禁止IP访问网站 一般来说,网站可以用域名和IP来访问.你的网站可以通过IP直接访问,本来这没什么问题,但是会有些隐患:由于搜索引擎也会收录你的IP地址的页面,所以同一个页面搜索引擎会重复收录,造成页面的权重不如单个收录高.域名恶意指向的可能:还记得google.com.sb 事件吗?google.com.sb 这个域名被恶意指向了百度,后来证实了 google.com.sb 这个域名为第三者恶意指向的,并不是Google所为.当然这只是个玩笑,但是

Nginx禁止直接通过IP地址访问网站

介绍下在nginx服务器禁止直接通过IP地址访问网站的方法,以避免别人恶意指向自己的IP,有需要的朋友参考下. 有时会遇到很多的恶意IP攻击,在Nginx下可以禁止IP访问. Nginx的默认虚拟主机在用户通过IP访问,或通过未设置的域名访问,在server的设置里面添加这一行: 复制代码代码示例: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站时,希望禁止显示任何有效内

Nginx如何设置禁止IP访问网站

需要禁止IP访问网站.在相关的server中设置相关的限制即可.

php禁止个别ip访问网站

PHP禁止个别IP访问自己的网站,可以看看下面的方法. function get_ip_data(){ $ip=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".get_client_ip()); $ip = json_decode($ip); if($ip->code){ return false; } $data = (array) $ip->data; if($data['region

防恶意解析,禁止用IP访问网站的Apache设置

一般来说,网站可以用域名和IP来访问.你的网站可以通过IP直接访问,本来这没什么问题,但是会有些隐患: 由于搜索引擎也会收录你的IP地址的页面,所以同一个页面搜索引擎会重复收录,造成页面的权重不如单个收录高. 域名恶意指向的可能.还记得去年还是前年的 google.com.sb 事件吗?google.com.sb 这个域名被恶意指向了百度,后来证实了 google.com.sb 这个域名为第三者恶意指向的,并不是Google所为.当然这只是个玩笑,但是如果被人恶意用别的域名解析到你的IP的话,那

关于WebBrowser访问百度地图

前段时间遇到一个困惑用WebBrowser访问百度地图的时候,百度会自动转至让下载sdk的页面,经过一个仁兄的点拨,可以改变WebBrowser的agent来骗过网站.经过试验成功.贴源码如下: string ua = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)"; Uri uri = new Uri("http://map.b

IIS部署网站后, 无法正常访问网站问题

IIS部署网站后, 无法正常访问网站问题,并且提示503错误,而且对应的应用程序池自动停止 在系统日志中可以跟踪到错误信息 "应用程序池"Lee_Integration_web"将被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误." "Windows Process Activation Service 未能为应用程序池"Lee_Integration_web"创建工作进程.数据字段包含错误号." 错误代码:80