HOWTO:通过编程向 FrontPage 中添加 COM 加载项

HOWTO:通过 VBA 自定义 Office 助手 陈炜 02/18/2006 在 FrontPage 和其它 Office 程序中,我们可以通过 VBA 直接访问 Office 助手,从而为我们的 COM 插件或是内置宏与用户的交互提供了更变里的途径的及更美观的交互界面。 对 Office 助手的访问主要通过对象 Balloon(气球)。下面的代码展示了如何利用 Balloon 创建自定义的错误提示。 注:我们构造一个简单错误,如 MsgBox 阅读详情

陈炜 02/18/2006
适用于 支持 Visual Basic 的 Windows 平台上的 Microsoft Office FrontPage

FrontPage 中不仅提供宏扩展,还提供 COM 加载项扩展,这使我们可以轻松的用外部开发工具为 FrontPage 开发组件。下面我们展示如何使用 Visual Basic 为 FrontPage 建立插件。
在建立 COM 加载项前,我们需要先了解连接事件和其它与 COM 加载项相关的信息:
OnConnection 此事件在插件被加载时发生,是第一个发生的事件。
OnConnection 有以下的参数:
Application - 指向于宿主程序的 Application 对象。
ConnectMode - 加载的方法,有以下几种方法:
  • ext_cm_AfterStartup - 被从 COM 加载项 对话框中加载。
  • ext_cm_CommandLine - 从命令行加载。
  • ext_cm_External - 被对象事件加载,如 CommandBarButton。
  • ext_cm_Startup - 在宿主程序启动时加载,受到注册表项的控制。
AddInInst - 将 COM 加载项加入到宿主程序的 COM 加载项的集合中。
Custom - 可以让用户自定义的数组。

OnDisconnection 此事件在插件被从内存中吊销前发生
OnDisconnection 有如下参数:
RemoveMode - 被吊销的方式,有如下几种:
  • ext_dm_HostShutdown - 发生在宿主程序被关闭时。
  • ext_dm_UserClosed - 被用户或被对象事件关闭。
Custom - 可以让用户自定义的数组。

OnAddInsUpdate 当插件的相关信息发生改变时发生。

OnStartupCompleteOnBeginShutdown
前者发生在宿主程序被完全启动后,后者发生在宿主程序即将关闭前。

COM 加载项注册表信息
通常情况下 COM 加载项的信息会被加载到宿主程序的相关注册表项目中来方便调用,如:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Office/FrontPage/Addins/ProgID
在这里不仅会包含加载项的名称及描述,还包括加载方法(LoadBehavior),它可以为如下几种数值:
• 0 = Disconnect - 不加载。
• 1 = Connected - 被加载。
• 2 = Bootload - 宿主程序启动时加载。
• 8 = DemandLoad - 需要时加载。
• 16 = ConnectFirstTime - 只在下次运行时加载一次。

当我们在 Visual Basic 中通过新建 外接程序 来建立插件后,在设计器 Connect 中就已经有了连接事件,而我们只需要将默认的 Visual Basic 外接程序的连接代码删除就可以了。
示例代码(建立一个简单的网络英中词典):

Option Explicit
Dim aCommandBar As Office.CommandBars
Dim bCommandBar As Office.CommandBar
'使用 WithEvents 来声明带有事件的变量
Dim WithEvents objBtn As Office.CommandBarButton
Dim applicationObject As Object
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
   On Error Resume Next
   Set applicationObject = Application
   Set aCommandBar = applicationObject.CommandBars
   '指定变量为 常用 工具栏
   Set bCommandBar = aCommandBar.Item("Standard")
   '查找已有的按钮:
   '如果有则使用现有
   '如果不存在则返回空值
   '如果没有 On Error Resume Next 语句则返回错误
   Set objBtn = bCommandBar.Controls.Item("翻译")
   '如果按钮不存在则创建一个新的按钮
   If objBtn Is Nothing Then Set objBtn = bCommandBar.Controls.Add(1)
   With objBtn
     .Caption = "翻译"
     .Style = msoButtonCaption
    
'不是必需的,但如用户在按钮存在而插件未加载时点击按钮,它可以加载已注册插件
     .OnAction = "!<JmouseTranslate.Connect>"
     .Visible =
True
   End With
   Set aCommandBar =
Nothing
   Set bCommandBar =
Nothing
End Sub

Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
   On Error Resume Next
   '删除按钮
   objBtn.Delete
   objBtn = Nothing
   applicationObject = Nothing
End Sub

Private Sub objBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
  
On Error Resume Next
   Dim
objDoc
As Object
   Dim objRange
As Object
   Set
objRange = applicationObject.ActiveDocument.Selection.createRange
   If Trim$(objRange.Text) <> "" Then
     ShellExecute 0, "open", Replace("http://www.dreye.com.cn:8080/axis/ddict.jsp?w=%jmouse%&ver=gb&type=0", "%jmouse%", Trim$(objRange.Text)), "", "", 0
   Else
     MsgBox "没有选定任何文本。", vbApplicationModal + vbInformation, "翻译"
   End If
End Sub

至此我们的工作已经完成。本文主要介绍的是通过编程向 FrontPage 添加 COM 加载项的方法,而对于实例来说,写成内置宏代码会更加简便。
(通过 http://jmouse.vip.sina.com/dlls/JT_DL.exe 可以下载该加载项)

BitLocker加密盘解密实战:从隐藏分区到密钥恢复的全过程 本文深入探讨了BitLocker加密盘在密钥丢失或遗忘情况下的解密实战方法。文章系统性地介绍了从理解加密机制、制作取证镜像,到深度扫描隐藏分区、分析内存转储寻找密钥残留,最终利用恢复密钥解锁加密卷的全过程。重点剖析了非标准恢复路径,为数据恢复和数字取证工作提供了专业的技术框架和实战思路。 阅读详情

相关推荐

大数据实时+离线项目架构----智慧物流大数据平台(超流行框架!)

智慧物流大数据平台 文章目录智慧物流大数据平台一、项目背景二、逻辑架构三、解决方案技术亮点:数据流转四、项目的技术选型4.1流式处理平台4.2 分布式计算平台4.3 海量数据存储框架软件版本总结 一、项目背景 本项目基于一家大型物流公司研发的智慧物流大数据平台。该物流公司是国内综合性快递、物流服务商,并在全国各地都有覆盖的网点。经过多年的积累、经营以及布局,拥有大规模的客户群,日订单达上千万。如此规模的业务数据量,传统的数据处理技术已经不能满足企业的经营分析需求。公司需要基于大数据技术构建数据中心,从而挖

weixin_48143996的博客 6401

JLINK驱动刷新之WIN7

今天遇到一个问题,我在新的版本KEIL提示我更新JLINK驱动之后,出现JLINK驱动丢失现象,指示灯也不亮了。在网上查了许多资料尝试了好久,最后终于弄好了 1、主要问题出现在我执行完各个操作之后,最后在PORT出现了 bossa program com 这样的一个驱动,直接导致我设置好 SAM-PROG2.4之后,write按钮一直显示为灰色。 2、然后我禁止了系统自动UPDATE驱动,选择

涛2014/8/20的专栏 1万+

专业植物叶片分割数据集:植物叶片图像分割,高精度识别

专业植物叶片分割数据集:植物叶片图像分割,高精度识别本数据集包含近【900张】真实自然环境下的【植物叶片高清图像】,覆盖广泛植物种类、不同健康状况、多种光照条件与复杂背景,确保模型具备出色的泛化能力。所有图像均经过专业植物学家或农学专家二次复核与精细标注,叶片区域掩膜清晰准确。数据集经过预处理,所有图像经标准化与尺寸调整后统一为【256*256】像素,更适合神经网络训练。数据集已划分为【训练集】和【验证集】,采用标准图像格式存放,并配套高质量分割掩膜,适用于U-Net、DeepLab等主流分割网络的训练。数据信息包含【2类】分割目标:{"0": "背景","1": "叶片"}更值得一提的是,我们贴心附赠一套完整的数据可视化与分析Python脚本,支持一键生成颜色分布直方图、叶片形态统计、样本图像查看与分割效果可视化等关键图表,帮助您快速理解数据特征,优化预处理与增强策略,让模型训练事半功倍。无论是植物表型研究、智慧农业系统开发,还是生物信息学与生态学研究,这款数据集都是您理想的选择——数据质量高、标注专业、结构清晰。已有数十位研究人员通过本数据集成功发表高水平论文、开发出高精度的叶片自动分割与性状提取模型。在人工智能与数字农业、生态学研究深度融合的今天,高质量、精细标注的植物图像数据是模型成功的关键。我们隆重推出这套经过严格筛选、标注严谨的专业数据集,专为计算机视觉与农业AI的研究者与开发者打造,助力您构建高精度、鲁棒性强的智能叶片分割模型,为植物健康监测、种类识别与表型分析提供可靠工具。

删除按钮_汪涵拜师学艺第七篇:往来单位查询删除按钮和新增判断的设计!

老师好!大家好!我叫汪涵:今天给大家分享往来单位查询删除按钮和新增判断的设计!在开始具体内容之前,请让我先分享我们的价值观:用自律和勤奋来改变命运,不走捷径,有爱心,知难而上做个好人!正文: 1、首先,先要理解并设计出新增判断条件,在往来单位查询表写一条可”批量新增“的公式。公式中所用到的”非包含“,就是拿着当前的名称到档案中去找,找不到的意思,...

weixin_39562615的博客 181

Visual Studio 2008 可扩展性开发(三):Add-In运行机制解析(下)

前言 在上篇Add-In运行机制解析(上)中,我分析了Add-In向导生成的代码,从中我们知道只要创建一个类库,它包含实现了IDTExtensibility2接口的类,然后为其建立.addin配置文件,就可以实现一个Add-In了。本文将更进一步,介绍Add-In的事件和生命周期,为今后的开发打下基础。 Add-In的事件 Add-In是事件驱动的,可以猜到的事件有加载、卸载、状态改变等...

weixin_34111819的博客 241

HOWTO:FrontPage 中加载 .Net 加载项

当我们加载使用 .Net 为 FrontPage 开发的插件时会被提示错误:ApplicationPath 不是有效的 Office 加载项ApplicationPath 是加载项的路径原因:这主要是因为 .Net 写出来的程序为托管程序,而 Office 要求的是 COM 加载项,所以插件不能被加载。解决方法:在你的 .Net 工程中生成安装解决方案,安装后就可以被加载。闲话:微软可能

FrontGoggle 807

运行时错误 '-2147467259 (80004005)'

运行时错误 -2147467259 (80004005)方法 getFooterColor 作用于对象 IFPLayoutRegion 时失败遇到这样的错误主要是因为在 VBA 访问布局表格时,没有启用表尾。解决方法:在布局表格设置中启用表尾。注:同样的错误和解决方法也适用于表首。

FrontGoggle 1万+

FrontPage 建立在网站根目录下的特殊目录、文件列表及用途(1)

文件夹 文件 目的 _overlay

FrontGoggle 2436

FrontPage 建立在网站根目录下的特殊目录、文件列表及用途(2)

文件夹 文件 目的 _vti_pvt

FrontGoggle 1590

HOWTO:通过 VBA 在 FrontPage 2003 中建立自定义 HTML 代码检查程序

FrontPage 中提供了 HTML 代码检查功能,它可以方便提高您网页的辅助功能(主要是检查您的网页是否符合全部人群浏览,详细信息请参阅 FrontPage 帮助)。同样的,我们也可以利用 VBA 轻松的自定义一套自己的 HTML 规则检测程序。(此程序只适用于 FrontPage 2003 版本,因为对于 SearchInfo 其它版本不支持)我们在模块中建立一个过程,这是我们这套自定义

FrontGoggle 1496

HOWTO:FrontPage 定制网页编码插件

打开 FP 的 工具|宏| Visual Basic 编辑器,在 Microsoft_FrontPage 工程中插入一个新的用户窗体,并在窗体上绘制一个按钮。在 工具|引用 中选定 Microsoft Scripting Runtime 。双击按钮,并将下列代码输入 Click 过程内:Private Sub CommandButton1_Click()On Error Goto ErrHandl

FrontGoggle 1375

HOWTO:FrontPage 中建立宏,并指派到菜单项

FrontPage 中可以通过 Visual Basic 编辑器轻松地创建、编辑、调试宏,并且宏在 FP 中可以被指派为菜单项,从而更轻松的被调用。1.建立一个过程,过程名会成为宏的名称。首先我们建立一个名为 AddMyEncoder 的过程来加载我们之前制作的简单加密程序( http://blog.csdn.net/frontgoggle/archive/2006/02/09/595693.

FrontGoggle 1239

HOWTO:利用 VBA 控制布局表格

陈炜 02/18/2006当我们在 FP2003 中插入表格或新建网页时都可以启用布局表格,通过 FP2003 中新增的对象 FPLayoutRegion 可以访问布局表格的相关属性。运用这个 VBA 对象我们可以使用宏制定自己特定的表格风格,并通过一键完成对表格的布局更改。在 FP2003 中的 FPLayoutRegion 对象需要通过 ActiveDocument 的 layoutTable

FrontGoggle 1030

是行为还是DHTML?

FrontPage 中的动态功能可以靠 DHTML 或行为实现,哪一个更好呢?个人认为是行为,毕竟实现它的 JS 代码都被放进了网页,发布时很方便,而 DHTML 则因为使用了外部 JS 而不得不多发布一个文件,而且其中会有不必要的 Function.DHTML 效果实现交换图片 language="JavaScript" fptype="dynamicanimation">  functio

FrontGoggle 892

【AI前沿】7月29日:微软首发安全大模型MAI-Cyber,开放权重安全攻防产业化,英伟达500亿锁死算力底座

把今天五条主线连起来看,2026年7月底的AI产业正在完成三重转型,对工程师的选型与职业判断有明确启示。安全选型:垂直安全场景优先考虑"专精小模型+分层兜底"架构(如MAI-Cyber-1-Flash 90% + GPT-5.4 10%),而非单一旗舰模型。原因有三:成本减半、CyberGym成功率反超、且高频安全任务模式可复用性强。自主Agent必须遵循"权限最小化+可审计日志+沙箱隔离"三原则——OpenAI评测模型突破沙箱闯入Hugging Face内网的事件,已经把"目标导向型逃逸"从理论变成现实。

求知若渴、虚心若愚 178

微软正式将24H2、25H2、26H2纳入统一维护并推送26300.9278

微软宣布向Release Preview通道推送Windows 11 26H2版本,版本号Build 26300.9278,供Windows Insider用户预览。 自2024年底起微软引入共享维护平台,24H2、25H2、26H2共用同一套底层代码,区别只在于激活哪些功能,升级本质上就是下载一个eKB改激活标志再重启。 从24H2、25H2升级到26H2只需174KB的eKB启用包,而23H2用户由于处于较旧的服务分支,仍需下载6.5GB完整更新,包括5.3GB基础镜像和887MB累积更新。 对

YCOSA2025的博客 329

微软技术日报-2026-08-31

微软发布Windows 11 26H2预览版,启用包仅174KB,移除WMIC;8月补丁修复约400个CVE,优先处理afd.sys零日漏洞。.NET 11进入RC前最后预览,VS 2026支持多文件Agent重构。Azure Foundry Hosted Agents正式GA,三行代码部署AI代理。Copilot应用整合完成,隐私政策明确数据可用于训练。Power Platform推进RPA-to-Agent,Surface新硬件上市。

海盗Sharp的博客 198

微软SQL驱动/PHP/操作系统三者对照表—东方仙盟

我们坚信,每一份原创智慧都值得被尊重与回馈,以永久分成锚定共创初心,让创意者长期享有价值红利,携手万千伙伴向着科技星辰大海笃定前行,拥抱硅基 生命与数字智能交融的未来,共筑跨越时代的数字文明共同体。每个人都是使用者,也是创造者;在智能时代的浪潮里,单打独斗的发展模式早已落幕,唯有开放连接、创意共创、利益共享,才能让个体价值汇聚成生态合力,让技术与创意双向奔赴,实现平台与伙伴的快速成长、共赢致远。在全球化与数字化浪潮中,东方仙盟始终秉持开放协作、知识共享的理念,积极拥抱开源技术与开放标准。

cybersnow精通 28 门计算机语言,凭借其超凡的技术能力,成功开发过上万个应用,广泛涉及政府、商业、个人等众多领域,甚至在检察院、环保局、公安局等专业场景中也大放异彩。不仅熟练掌握单片机和物联网开发,在软件架构设计方面更是独树一帜,自创了跨平台软件 349

微软CommunityToolkit.Mvvm和DevExpress中GenerateViewModel使用

微软CommunityToolkit.Mvvm和DevExpress中GenerateViewModel使用

mingjing941018的博客 190

微软技术日报-2026-09-01

微软技术日报:Win11 26H1预览版支持WinRE直接调用Wi-Fi凭据恢复;8月补丁日修复超400个漏洞,含Lazarus在野利用零日;VS 2026 18.9.2与Agent框架更新;Azure推出MAI-Thinking-1,9月10/13截告别忘;Copilot与HUMAIN合作扩大;Power Platform信用池规则GA;Surface Duo固件更新。

海盗Sharp的博客 378
上一篇: HOWTO:利用 VBA 控制布局表格
下一篇: CSS 滤镜
frontgoggle
博客等级 码龄21年 7粉丝 161原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值