当前位置:首页 > 计算机相关 > .net专区 > 正文内容

C#实现 WebBrowser中新窗口打开链接用默认或者指定浏览器打开,不用IE

piikee10年前 (2012-10-28).net专区839
首先要捕获打开链接的事件,这个事件在 WebBrowser的NewWindow里面。
这里我的WebBrowser命名为announce。所以捕获事件如下:
private void announce_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true ;//让webbrowser停止默认执行事件,让它不会用IE打开链接了
WebBrowser senderb = (WebBrowser)sender;//把sender给拿下,是一个WebBrowser对象
openUrl(senderb.StatusText);//StatusText即是要打开的新链接地址,把这个地址交给openUrl函数来搞定吧
}
openURL函数得到新链接,进行打开操作啦。函数如下:
private void openUrl(string url)
{
try
{
RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command\");//获取系统中的浏览器
string s = key.GetValue("").ToString();
Regex reg = new Regex("\"([^\"]+)\"");
MatchCollection matchs = reg.Matches(s);
string filename = "";
if (matchs.Count > 0)
{
filename = matchs[0].Groups[1].Value;//取默认浏览器
System.Diagnostics.Process.Start(filename,url);
}
else
{
System.Diagnostics.Process.Start(url);//取不到默认浏览器就用IE了。。
}
}
catch { }
}
以上openURL函数你就可以实现各种操作啦,不一定要用我的操作哈。发现网上还没人有这解决办法,所以转载请注明来自www.piikee.net萍客小居哦。

扫描二维码推送至手机访问。

版权声明:本文由萍客小居发布,如需转载请注明出处。

本文链接:https://www.piikee.net/971.html

分享给朋友:

相关文章

标签和

首先,他们都主要应用于样式表,功能是相似的。但是,<code><span></code>是行级元素,也就是说内部的元素不另起一行进行渲染,而<code><div></code...

带后缀判别的文件上传asp.net程序

Default.aspx.csusing System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;usin...

Visual Studio 2008 安装出错 无法安装 的解决办法

1 安装vs2008 team 中文正式版,会出现deffactory.dat读取错误。解决方案:进入那个文件夹。替换deffactory.dat ,新建一个文本文档,把下面的内容粘贴进去,然后保存替换覆盖这个文件。或者用 打开,删除原有的...

Power Designer反向数据库时的一个问题

Power Designer反向数据库时,遇到一个问题,如下:弹出警告框Unable to list the users.[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句SQLST...

SQL卸载重装遇到实例名重复,实例名删不掉的问题

Sql2005卸载后,在重新安时会碰到以前安装的实例名还在的问题,然后如果自定义实例名一样的话会报错说实例名重复。那么怎样删除以前的那些实例名呢?首先,确认你把所有SQL相关程序都卸载了。然后,删除C:\Program Files\Micr...

SQL语句重命名数据库表和表中的列

A.   重命名表将表   oldTableName  重命名为  newTableName :EXEC   sp_rename   'oldTableName','newTableName'B.   重命名列将表 EMIS  中的列  ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。