[IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口

C# 用WebBrowser实现的多页面浏览器 当要打开新窗口时,不是弹出IE或其他浏览器,在本身的新tab页中是实现。 可以在此基础上进行多次开发,如进行DOM操作,当然做个什么自动化提交之类的也不在话下了。 --包含源码 立即下载

从IE7 开始, IE 支持多页面(Tab)浏览。 而IE 的WebBrowser 控件也相应的多页面浏览开发接口。 出于向下兼容考虑,该接口在缺省情况下是被屏蔽的。 假设你用WebBrowser 控件开发一个浏览器 MyTabBrowser, 你会发现右键菜单的"在新标签页中打开" (Open in New Tab)项是灰色的(如下图)。

 

 

IE内核 开发 多页面浏览器

 

打开这个功能,你需要在注册表里面创建以自己文件名为值的DWORD值:

 

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
     SOFTWARE
          Microsoft
               Internet Explorer
                    Main
                         FeatureControl
                              FEATURE_TABBED_BROWSING
                                   MyTabBrowser.exe= 0x00000001

多页面浏览开发接口开启之后,你的程序MyTabBrowser 就可以和IE一样响应"Open in New Tab”的请求了。 IE 定义了以下3种动作为"Open in New Tab"的请求

 

1)用户在右键菜单中点击“Open in New Tab” 项

2)  用户用鼠标中键点击链接

3)用户按住Ctrl 键点击链接

 

该请求会激发 DWebBrowserEvents2::NewWindow3 事件, 该事件的参数dwFlags 标示了这个请求的类型:

 

  • NWMF_FORCEWINDOW: 在新窗口中打开链接.
  • NWMF_FORCETAB: 在新Tab 中打开链接.
  •  

    以下是简单的代码示例如何处理该事件:

     

     

     

     

    >> 原创文章的版权属于作者,转载请注明出处和作者信息(http://blog.youkuaiyun.com/WinGeek/), 谢谢。 <<

     

     

     

     

     

     

阿里云百炼接入本地Claude,接入idea 阿里云百炼平台提供两种接入方式:未购买套餐时使用通用API Key(sk-xxxxx),需注意免费额度独立计算且不会自动切换模型;购买Coding Plan套餐后使用专属API Key(sk-sp-xxxxx),享受固定月费无超支风险。配置需在.claude/settings.json中设置认证信息,包括API Key和Base URL。建议开启"用完即停"功能避免意外扣费,不同模型的免费额度互不影响。购买套餐后还可通过IDEA插件Claude Code进行集成,实现固定费用下的稳定使用 阅读详情

相关推荐

最新版谷歌浏览器Axure插件(免翻墙)

本文介绍了在Chrome浏览器无法直接打开Axure导出HTML文件的解决方法。由于国内网络限制无法访问Chrome商店,需手动下载安装AxureRP扩展插件(提供百度网盘下载链接)。安装步骤包括:1)启用开发者模式;2)拖拽CRX文件或加载解压文件夹;3)勾选"允许访问文件网址"。同时还提示若浏览器版本过低可能无法正常运行,并给出了浏览器升级方法。该教程详细说明了从插件安装到浏览器升级的完整解决方案。

OldCat先生 2976

C#.WinForm WebBrowser多页签浏览器

c# winform 多页签 浏览器 页面解析 内容采集 webBrowser

summe的博客 980

uniapp 开发微信小程序请求问题 , 真机调试正常,开发工具正常,但是使用扫码预览接口都是不通的,发布到体验版也是请求失败

uniapp开发小程序体验版接口请求失败(真机可以)

weixin_60408555的博客 3954

使用注册表解决IE选项卡无效的方法

 打开注册表编辑器,定位到HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/TabbedBrowsing 然后在右边窗格中找到PopupsUseNewWindow键值(DWORD值)。 该键值为0时代表由internet explorer 决定如何打开弹出窗口 为1时代表始终在新窗口中打开弹出窗口 为2时代表始终在

hinsxun的专栏 1817

基于任务的后勤智能体:三段构建与演进设计探究

这是系统智能化的核心难点。例如,对于一个“加强连级滩头阵地防御”子任务,系统会根据防御时长、预期敌军攻击强度、地形等因素,计算出所需的弹药(不同弹种的具体数量)、构筑工事的器材、人员的给养和饮水量、以及医疗救护的药品和血包数量。首先进行分词、词性标注等基础处理,然后利用在军事语料库上训练的命名实体识别(NER)模型,提取出关键实体,如任务类型(“夺控作战”)、作战对象(“Y岛”)、时间约束(“D日H时”、“24小时内”)、成功标准(“建立稳固滩头阵地”)、保障重点(“弹药充足”、“及时救治”)等。

weixin_49042442的博客 1088

液晶屏LVDS接口:【图文详讲】

​LVDS(Low Voltage Differential Signaling,即低电压差分信号)接口又称RS-644总线接口,是20世纪90年代才提出的一种数据传输和接口技术。LVDS接口是美国NS美国国家半导体公司为克服以TTL电平方式传输宽带高码率数据时功耗大,电磁干扰大等缺点而研制的一种数字视频信号传输方式

weixin_66299220的博客 1万+

excel vba 调用webbrowser_Excel 有什么好用的神技,让你相见恨晚?

合并拆分文件,图片插入更新,批量生成图表,用户登录控制,一机一码注册加密,数组字典详解,窗体控件详解,你想要学的都在这里,所有案例均与实际工作场景结合,即学即用!!! 本人全职VBA程序员 Excel vba二次开发12年经验 常用代码175例+,超过210集 ,超60小时逐行手写直播实况教学视频 极速入门,快速提高!【高手课】本套教程目录如下 高手课《学好了效率高!Excel实战技巧208例》...

weixin_39676930的博客 1127

opencode : 无法将“opencode”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了opencode : 无法将“opencode”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用opencode的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口

从IE7 开始, IE 支持多页面(Tab)浏览。 而IE 的WebBrowser 控件也相应的多页面浏览开发接口。 出于向下兼容考虑,该接口在缺省情况下是被屏蔽的。 假设你用WebBrowser 控件开发一个浏览器 MyTabBrowser, 你会发现右键菜单的"在新标签页中打开" (Open in New Tab)项是灰色的(如下图)。   打开这个功能,你需要在注

phphot 2182

【2026OD新机考】【不定滑窗】20260415-API请求日志去重分析【Py/Java/C++/C/JS/Go六种语言OD真题】【欧弟算法】全网注释最详细分类最全的华子OD真题题解

中找到所有的连续的相同元素,同时统计对应的连续相同元素对应的值的平均值。:当右指针为第一个元素(没有前一个元素),或者右指针对应的元素。某微服务系统的日志监控平台需分析API调用记录,日志含大量。相等,说明当前元素仍然属于同一个相同元素窗口,将当前元素值。中的所有元素均相等,并且计算窗口和情况即可。请实现一个函数,对给定的日志数据去重合并处理。位置,表示开启一个新的窗口,此时需要重置窗口和。,为了优化重复的请求记录,存储和后续分析需对。:对应的响应时间数组(毫秒)。重新置为当前右指针的元素值。

weixin_48157259的博客 112

BACnet协议栈基本对象BI、BO、AI、AO、AV以及device和File对象介绍

BACnet协议栈基本对象BI、BO、AI、AO、AV以及device和File对象介绍

shufawangzhang的博客 3988

c webbrowser ajax请求,C#的Web浏览器的Ajax调用C#的Web浏览器的Ajax调用(C# webbrowser Aja...

WebBrowser控件(WPF和WinForms的版本)中的行为不同于IE完全多方面的。 您可能要实现功能控制带来其行为尽量接近IE越好(特别是FEATURE_BROWSER_EMULATION ),这通常可以解决脚本的兼容性问题。 下面是一些代码,请注意,它并不需要管理员权限来运行:private void SetBrowserFeatureControlKey(string featur...

weixin_29328371的博客 589

YooAsset 学习

YooAssets使用教程

weixin_44884538的博客 1659

WebBrowser

忽略JavaScript 错误dynamic activeX = this.webBrowser1.GetType().InvokeMember("ActiveXInstance", BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic, nu

Jay的专栏 1035

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

bitcoin小结

休假没事做,今天不想搞代码,把Bitcoin: A Peer-to-Peer Electronic Cash System重新看了一遍,发现其实还是有点意思的,乌托邦的意外有点浓。但是里面Transactions的链式结构,非常有启发,不仅仅这里可用,在ruby gems里面,如果应用这个做多gems之间协调沟通,会不会是个非常大的创新点呢? transaction里面的非对称加密是个有

linhx的专栏 891

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

CefSharp中ChromiumWebBrowser打开新页面处理(_blank)

CefSharp的Browser怎么说也是嵌入了Chromium的浏览器,所以碰到&lt;a &gt;标签“_blank”这样的时候,都是弹出新窗体打开新页面。 但是怎奈我使用了DevExpress控件中的TabForm这个东西来作为主窗体,所以我不希望弹出新的窗体来,那么就需要捕获打开新窗体这样一个事件来重写了。 但是你会发现,在ChromiumWebBrowser对象中,没有OnNewWi...

哈利路亚的收藏夹 4万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

使用IWebBrowser2操控浏览器页面测试(IE)

  测试一下在IE浏览器界面中插入代码测试,采用寻找窗口的方式获取Internet Explorer_Server句柄。   写的时候参考了很多网上的资料,有些地方不大适用就稍微修改了一下。 SendMessageTimeout函数一直无效(看网上有一回答说c#可以正常使用,没试过),无效情况是执行成功(非超时),但是lpRes为0,于是改用SendMessage; 使用spyxx查...

weixin_30781107的博客 846
上一篇: [IE编程] 多页面基于IE内核浏览器的代码示例
下一篇: [Windows编程] Windows 7 对多核的支持
西塞安全
博客等级 码龄20年 980粉丝 164原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值