| C#实现 WebBrowser中新窗口打开链接用默认或者指定浏览器打开,不用IE
不多说后面的是转的,下面一段是我闵涛个人在用的:
以下是代码片段: private void webBrowser1_NewWindow(object sender, CancelEventArgs e) { e.Cancel = true;//让webbrowser停止默认执行事件,让它不会用IE打开链接了 WebBrowser senderb = (WebBrowser)sender;//把sender给拿下,是一个WebBrowser对象 System.Diagnostics.Process.Start(senderb.StatusText); // 直接调用默认浏览器 } |
个人觉得下面比较繁琐。
首先要捕获打开链接的事件,这个事件在 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函数你就可以实现各种操作啦,不一定要用我的操作哈。发现网上还没人有这解决办法, |