▲▲▲▲AxWebBrowser控件,怎样强制在新窗口打开链接 想做一游览器,看一般都有强制在新窗口打开链接的功能,也想加进去,BeforeNavigate2事件可以捕获到相应的链接,但问题是,我不能把这里所有的链接都放到一新窗口打开,比如打开“新浪”首页,这里便能检测到他的首页执行了多次这个事件,如果我每次都放到一个新的页面里,那打开一个新浪首页一下子会出来好几个,不知道大家明不明白我的意思,如何强制链接在新窗口打开,就象IE鼠标右键那样,又如何屏蔽弹出窗体,请指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考http://blog.csdn.net/jinjazz/archive/2007/11/24/1901192.aspx 多谢jinjazz,但一个页面BeforeNavigate2有时会调好几次,这种方法似乎不太好,有没有好的解决办法。 那可能因为页面有iframe的原因,你可以判断一下url是不是webbrowser的url 我估计也应该是框架的事,可我该怎么判断是不是webbrowser的url,JinJazz能再提示一下吗? 大概是if(e.Url==this.webbrowser.Url){//....} jinjazz,似乎不是那么回事,我很难判断是由于我的点击引发了BeforeNavigate2事件还是网页载入时自动触发了该事件,所以我很难强制判断是不是该弹出新窗口,是否还有别的办法?有没有办法调IE右键菜单的“在新窗口打开”这个事件 考虑user32.dll库中的FindWindowEx和SendMessage函数,用VS.IDE打开shdocvw.dll文件找到IE右键菜单的“在新窗口打开”的ID后向其发送消息 IntPtr vHandle = WebBroswer.Handle; vHandle = FindWindowEx(vHandle, IntPtr.Zero, "Shell Embedding", null); ① vHandle = FindWindowEx(vHandle, IntPtr.Zero, "Shell DocObject View", null); ② vHandle = FindWindowEx(vHandle, IntPtr.Zero, "Internet Explorer_Server", null); ③ SendMessage(vHandle, 0x111, IE右键菜单的“在新窗口打开”的ID, (int)vHandle);代码大概差不多就是上面的,至于②和第③行第二个参数中是不是上面的那样,比在网上搜一下或试一下就可以了 C#如何才能找到usb上网卡? 一维字符串数组如何去重复字符串,相同的字符串元素只保留一个 因我电脑没光驱,下了个iis自动安装,管理工具上有两个iis显示,一个是6.0的。装vs2008提示出错,何故? 急,急!!c# 如何调用Word的AddOLEControl()方法插入一个控件! C#写sql server的问题,有谁遇到过!! 这样的功能用C#应该怎么写? 救命题~ 望高手拔刀相助~ 散100分了,BS模式的应用程序怎么调用打印机? 帮忙救救急 请问如何生成C#语法树? 新手问题,关于模糊查询的问题 如何使得某个类无法被反射技术而访问到私有成员
http://blog.csdn.net/jinjazz/archive/2007/11/24/1901192.aspx
if(e.Url==this.webbrowser.Url)
{
//....
}
vHandle = FindWindowEx(vHandle, IntPtr.Zero, "Shell Embedding", null); ①
vHandle = FindWindowEx(vHandle, IntPtr.Zero, "Shell DocObject View", null); ②
vHandle = FindWindowEx(vHandle, IntPtr.Zero, "Internet Explorer_Server", null); ③
SendMessage(vHandle, 0x111, IE右键菜单的“在新窗口打开”的ID, (int)vHandle);
代码大概差不多就是上面的,至于②和第③行第二个参数中是不是上面的那样,比在网上搜一下或试一下就可以了