让Internet Explorer成为你的软件集成平台(二):献给VB Developer

MCP + 应用生成:让 AI 直接产出可交互的应用 2025年,MCP迎来革命性升级:可交互输出让AI不再仅返回文本,而是生成带表单、图表、按钮的结构化UI卡片。用户可在卡片中直接筛选、导出,实现“一问一操作”闭环。通过返回UI Schema或独立HTML片段,结合客户端渲染后端调用回流,显著提升效率(任务轮次↓65%),尤其适合数据看板、表单填报等重操作场景。但需克制:纯查询仍以文本为佳。落地关键在于合理设计交互、控制复杂度,并规避版本不一致、数据过载等六大坑。本质是将AI从“告知者”变为“应用交付者”,开启智能体原生交互新范式。 阅读详情
2006年11月21日 15:59:00
Microsoft Visual Basic 6.0是Microsoft的一个经典作品,尽管争议颇多,个人认为VB6是一个十分优秀的开发工具。做为一款1998年的产品,VB6至今还被许多人所喜爱,笔者就是其中之一。针对COM组件开发,VB6非常方便,但长期以来,VB6与IE插件开发却无缘无分,这一点多少有一些遗憾。作为一款建立在COM基础之上的应用软件,IE系列提供了对COM技术的深度支持,也许,这个支持的门槛过高,使得VB被拒之门外。
那么,能否建立VB6与IE开发之间的桥梁?一般而言,VB6可以十分方便的开发3类COM对象:1、简单的无UI COM对象;2、ActiveX控件;3、ActiveX Document对象。这几类对象中,前2类使用很广泛,第三种对象对一般开发者而言也许相对陌生,事实上,Microsoft的许多软件的插件往往是使用第三类对象,即基于VB的Active Document,例如Visual Studio IDE里的Tool Windows对象,就是一个典型的例子。选择这类对象,也许是因为ActiveX Document对象有完整的键盘消息控制能力。与MFC、ATL等相比,VB6的COM开发要简洁得多,例如,没有idl文件,触发事件的机制非常简单,连接事件的方式也十分清晰,VB6的"引用"机制,对COM开发的简化是无与伦比的,即使现在的.NET,也是延续早期VB的引用模式。建立IE与VB6之间的桥梁,基本是来自个人对VB6的一种偏爱,对此,也颇费苦心。从技术层面看,这个桥梁不单纯是为VB而建立的,而是针对两种极为重要的COM对象建立的,其一是ActiveX控件,另外一个就是Active Document。IE能够浏览.NET 3.0开发的WPF文档,就是采用Host ActiveX Document技术实现的。在VB环境内,开发一个Active Document非常容易,为此,我们建立一个支持VB ActiveX Document的DLL工程,取名为VBIEDoc:
经过编译后,我们得到一个已经注册的COM对象库,里包含一个ID为"VBIEDoc.IEDoc"的ActiveX Document对象。现在,我们有了一个很简单的IE"插件"了,为了能够看看这个插件如何被"裝入"IE,我们还需要一些处理工作,基本步骤如下:
1、 生产一个XML文件:
>Tangram DocViewID="TangramLiteFormD.DocTemplate.1" DocObjID="" ExtDocObjID="TangramLiteFormExtenderD.docextender.1"<
>Window<
>TangramNode Name="VBDoc" ID="VBIEDoc.IEDoc" CnnID="" Caption="" Width="866" Heigh="127" Tag=""<>/TangramNode<
>/Window<
>TangramDoc<>/TangramDoc<
>/Tangram<
2、 以这个XML文件为模板,用TangramDesigner生成一个xtml格式的XML文件,并将这个文件保存到一个指定的目录,建议保存到"Program Files/Tangram/BandFile"目录,这里,我们指定文件名为"testvb.xml",并将这个文件存放在"Program Files/Tangram/BandFile"目录;
3、 在IE地址栏里输入"ie:l/l(testvb)",我们看到如下界面:
如果输入:"ie:l/l(testvb)"我们将得到:
当然,这里得到的东西,内容是"空白"的,但我们已经成功地走过了第一步。
通过以上的步骤,我们看到,在UI级别上,类似VB6这样的工具产生的组件,是能够与IE对接的,那么,这种对接,能够与IE融合吗?以下,我们将向你展示,这种融合是完全可能的。为了实现与IE融合,我们需要所开发的对象有一个"属性",这个属性名是:"TangramDoc",利用VB的Wizard,很容易添加这个属性,代码如下:
Option Explicit
Dim WithEvents thisDoc As TangramLiteFormDLib.Document
Dim WithEvents thisWebBrowser As WebBrowser
Public Property Let TangramDoc(ByVal vNewValue As TangramLiteFormDLib.Document)
Set thisDoc = vNewValue
Set thisWebBrowser = thisDoc.AxObject("WebBrowser")
End Property
我们可以为文档上的button添加如下"动作":
Private Sub Command1_Click()
thisWebBrowser.Navigate txtURL.Text
End Sub
重新编译上面的文档,并按上述步骤重新加载文档对象,为了测试关联性,可以在文档中输入一个URL,并按下按钮,也许你已经感觉到应该发生的事情了:
以上步骤表明,VB Document通过"引用",可以自然地与IE交互操作,类似的,其它ActiveX控件以及ActiveX Document也可以以同样的方式实现与浏览器的UI级别的集成。
一个比较有趣的问题是,如何组织多个VB Document(以及其它ActiveX对象)。为此,我们可以在如上的VB工程中,增加2个VB Document对象,分别命名为IEDoc1、IEDoc2,我们看如下XML描述:
>Tangram DocViewID="TangramLiteFormD.DocTemplate.1" DocObjID="" ExtDocObjID="TangramLiteFormExtenderD.docextender.1"<
>Window<
>TangramNode Name="sp1" ID="TangramLiteTabWnd.CTangramLiteSplitterWnd" CnnID="TangramLiteTabWnd.TangramConnector" Caption="sp1" Width="" Heigh="" Tag=""<
>Row<
>TangramNode Name="fm1" ID=" VBIEDoc.IEDoc" Width="866" Heigh="127" Tag=""<>/TangramNode<
>/Row<
>Row<
>TangramNode Name="fm2" ID=" VBIEDoc.IEDoc1" Width="866" Heigh="446" Tag=""<>/TangramNode<
>/Row<
>/TangramNode<
>/Window<
>TangramDoc<>/TangramDoc<
>/Tangram<
从描述上看,这个结构描述了一个2行1列的切分窗口,处于(1,1)位置的是ID=" VBIEDoc.IEDoc"的VB Document(你可以用其它ID值替换),处于(2,1)位置的是ID=" VBIEDoc.IEDoc1"的VB Document对象。我们可以用TangramDesigner生成对应的XTML文件,记为:testvb2.xtml,在IE地址栏里输入"ie:l/l(testvb2)",你可以看到:
一旦多个VB对象(或者多个ActiveX)彼此可以关联,那么这些关联即可形成特定的应用。
我们已经看到,ActiveX对象完全可以操作IE以及IE内部的DOM模型(通过引用技术,COM对象可以得到接口IHtmlDocument2,进而可以遍历DOM),那么,能否在DOM模型里操作外围的"插件"对象?这些插件对象,并不属于DOM对象集合,但由于这些对象的"多样性",的确可能给IE提供大量的原本不具备的软件功能,一旦在"对象模型"上找到突破口,这种结合将急速促进桌面应用与Web应用相结合。我们将在以后的文章中陆续介绍如何将上述扩展对象有机的"融入"HTML的DOM模型,例如,这些对象可以与浏览器的脚本引擎完全的整合,脚本引擎可以自然的解释"外围"插件的事件,同时,外围插件也可以自如的处理HTML内部的各种操作..(待续)


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1401744


网页自动化——VBA和InternetExplorer.Application  http://blog.sina.com.cn/s/blog_8c2a8f390102w89p.html 阅读详情

相关推荐

VB动态创建浏览器控件

1.需要引用 Microsoft Internet Controls。 2.工程配置中,“删除有关未使用的 ActiveX 控件的信息” 不能勾选。 3.具体代码如下 Option Explicit Private WithEvents MyWebBrowser As WebBrowser Private Sub Command1_Click() '创建    

oali1172831的专栏 1217

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

利用VB实现对IE的调用控制

随着网络应用的不断扩展,采用HTML语言编写的文档越来越多,如何在VB程序中实现对HTML文档的浏览是一个需要解决的问题。本文以一个实例说明了在VB中调用和控制Internet Explorer的方法。    一、 编程准备    VB通过OLE自动化技术创建和控制Internet Explorer对象的实例,因此,在新建一个工程后需要加入Microsoft Internet 控制的参考,方法是打

Peter's Blog 3520

【课程设计】Springboot疫苗接种管理系统毕业设计-附源码191451

疫苗接种管理系统主要功能模块包括用户管理、个人接种、团体接种、接种医院、实时排队人数、疫苗接种提示等,采取本系统此次设计前端视图界面选择微信开发者工具来完成,系统功能设计由Java面向对象编程语言实现,系统开发工具选用IDEA,后台数据库为MySQL,项目管理工具选用Maven,总体的设计框架为最近很方便的springboot框架,实现了本系统的全部功能。 关键词:预防接种;Springboot框架;MySQL数据库...

Biye_Design的博客 7052

微软技术日报 2026-09-08:Patch Tuesday 任务栏自由了,GPT-6 Astra 四平台齐发

今天推送的 9 月补丁让 Windows 11 找回了任务栏开始菜单的自由,而 Copilot 一周内接入两大前沿模型、Studio Harness 转 GA,则标志着微软的"智能体平台化"从口号进入账单期——本地跑大模型(Project Zenith)云端多模型编排(Copilot Studio)两条路线正在同时加速。

海盗Sharp的博客 413

微软技术日报 2026-09-09:Project Opal 自主智能体亮相,Patch Tuesday 966 漏洞含 2 零日

每天 5 分钟,速览微软技术圈最新动态。今日看点:Project Opal 让 Copilot 学会"自主干活"、创纪录的 966 漏洞 Patch Tuesday、WinUI 3 三十分钟速成新范式。

海盗Sharp的博客 312

微软技术日报 2026-09-13:Grok 正式登陆 Copilot,Win11 补上后量子加密智能体容器

每天 8 点,5 分钟看懂微软技术圈。今天是 2026 年 9 月 13 日,星期日。

海盗Sharp的博客 261

CSharp: Task Scheduler

本项目为基于C# .NET 10的定时任务调度系统,采用模块化设计,支持YAML配置、SQLite存储、多数据库兼容。核心功能包括:基于cron表达式的精准调度(自研解析器)、并发控制、任务重试、日志滚动(按5MB切割),支持命令行GUI双界面操作。提供任务增删改查、一键执行、导入导出JSON、实时仪表盘统计等功能,具备一次性任务自动禁用、执行历史追踪等特性,适用于Windows环境下的自动化运维场景。

Geovin Du Dream Park 211

GitHub今日热榜 | 2026-09-08:微软 markitdown 冲进前三

<think>好的,用户需要根据提供的GitHub趋势榜内容,写一篇不超过150字的文章摘要。内容包含榜单变化、亮点项目和分析。需要简洁覆盖核心要点:今日榜单变化大,新进8个,两个持续项目撑住,微软markitdown和字节deer-flow等新面孔上榜,主题是AI Agent工具链。控制字数。 先梳理关键信息:今日榜单10个中8个是新进,昨日霸榜项目集体跌出,ECC和FckSignups持续。微软markitdown冲至第,字节deer-flow等新项目上榜,主线是AI Agent技能工具链。需要把这

m0_68631449的博客 423

专项事件体系

专项事件体系是浏览器针对特定业务场景提供的垂直事件集合,覆盖表单交互、剪贴板操作、拖拽交互、页面状态、网络状态等专项业务场景,能够精准响应特定功能的状态变化用户操作。 这类事件针对性强,具备专属的事件对象属性操作方法,是实现对应业务功能的核心事件支撑。

2401_83227843的博客 126

微软技术日报 2026-09-10:Project Zenith 开发者设备亮相,.NET 11 RC1 可投产

今天的微软把重心放在「开发者的一公里」:设备端(Project Zenith)、运行时(.NET 11 RC1)、模型层(Copilot 多模型矩阵)三层同时发力,开发者环境从"自己搭"走向"买来就能写"。参考来源:微软官方博客(Project Zenith)、.NET 官方发布说明、TechRepublic、腾讯新闻科技频道、第一财经、IT之家。本文由 AI 辅助整理,仅覆盖技术动态,不含财务信息。

海盗Sharp的博客 432

AI Agents for Beginners:微软官方 AI Agent 入门课程,18 课掌握智能体开发

Microsoft Cloud Advocates 团队开源的一套免费、系统性的 AI Agent 入门课程。——18 个课时,从 AI Agent 基础到完整的应用开发,手把手带你入门。它瞄准的是现有学习资源的痛点:AI Agent 是生成式 AI 的最新前沿,但大多数教程要么过于理论、要么只讲零散技巧,缺乏系统性;而官方文档又往往不够友好。

风雪夜归人的博客 296

微软技术日报 2026-09-11:VS Code 语音定时自动化上线,Copilot 键终于可改映射

每天 8 点,5 分钟看懂微软技术圈。今天是 2026 年 9 月 11 日,星期五。

海盗Sharp的博客 388

Generative AI for Beginners:微软官方 21 课生成式 AI 入门教程,从零掌握 AI 应用开发

Microsoft Cloud Advocates 团队开源的一套免费、系统性的生成式 AI 入门课程。——21 个课时,从生成式 AI 基础到完整的应用开发,手把手带你入门。它瞄准的是现有学习资源的痛点:生成式 AI 领域知识更新极快,很多教程要么过于理论、要么只讲零散技巧,缺乏系统性;而官方文档又往往不够友好。这套课程由微软 Cloud Advocates 精心设计,每节课都有视频讲解、代码示例(Python + TypeScript 双语言)、额外学习资源,是真正从零开始的系统性学习路径。

风雪夜归人的博客 274

Windows11自定义分区大小安装系统

格式化为NTFS,标签为Recovery。设置恢复分区磁盘ID,这一步在前面给出的微软官方有说明,EFI分区和MSR分区不需要设置ID,是因为create命令中已经给出了对应的分区类型,但由于恢复分区和主分区同时使用NTFS,也没有单独的名称(Recovery是给用户看的,不是给机器识别的。就像电脑中的C盘可能对外名称是本地磁盘,但是机器读的是路径C:)如果没有给恢复分区设置ID,则会创建一个基本数据分区,便于理解的说法,是会创建一个D盘,而非恢复分区。

问道至简 209
上一篇: “太极语言”与“Sinox操作系统”
下一篇: 真诚希望每个35岁以后的IT人都拥有梦想
softart
博客等级 码龄19年 67粉丝 2569原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值