怎么在outlook里面插入一个插件,用VC写的,最好是带代码,我做群发用的,有吗??好心啊!

怎么在outlook里面插入一个插件,用VC写的,最好是带代码,我做群发用的,有吗??好心啊!,第1张

一、实现插件 Office/VisualStudio都支持插件(add-in),要实现一个addin,只需:构造一个COM组件,实现IExtensibility2接口 在注册表中,HKCU\Software\Microsoft\Office\<App>\Addins下写入启动方式等信息这样,当Host软件启动后就会按照注册表中的信息,构造COM对象,并按照IExtensibility2进行调用。Add-in程序这时就可以调用HostApp中的COM组件,实现自己的功能了。使用VC/ATL实现时,利用IDE的功能(如建立ATL/COM工程、添加一个Simple COM object、实现一个接口)即可搭建完这部分代码的框架。注意接口类在“Microsoft Add-In Designer(1.0)”这个Typelib中。详细Tutorial见 http://www.devarticles.com/c/a/C++/Building-An-Outlook-COM-AddIn-With-VC需要注意的是,该Tutorial里处理事件采用的是IDispEventSimpleImpl,这个功能还是比较受限制的,小心。 VC6的ATL工程,默认的release版会加入_ATL_MIN_CRT宏,这使该工程不使用MSVCRT,如果在工程中引入了Office组件,两个CRT会发生冲突。应当删除之。二、参考资料 MSDN光盘上没有Office内部类的References,要查帮助,就得在office里面查。进入Outlook的VBA编辑界面,F2就可以列出所有的与Outlook相关的COM对象,再按F1就可以看到对象、属性、方法、事件的帮助,当然,都是VB语法的。中文版的office,帮助也就是中文的。看这种文档的中文版,还颇有些不适应。为了察看Outlook里COM对象的树状结构,可以在VBA里面写这样的过程:Sub a()Set b = Outlook.Application '或者干脆 Set b = ApplicationEnd Sub单步执行或设置断点,然后把b添加为Watch,就可以展开b的内容,慢慢研究了。三、Outlook的Action菜单 添加菜单的方法,Tutorial里面写的很清楚了,不再多说。:-)Outlook的Action菜单有些特殊。Outlook有多个Action Menu,对应着不同的Folder。即,Contact的Action菜单与Task的Action菜单是不同的。如果打算添加在Action菜单里,注意要选对CommandBarPopup对象。值得注意的是,这个Action菜单,是Create-On-Demand的,其创建顺序不定。也就是说,刚启动时,没有Contact的Action Menu,等用户点击了Contact Folder,对应的Action Menu才创建出来。不过,菜单的Id是固定的,不仅在多次运行时不会变化,甚至office版本之间也是不变化的。可以使用CommandBars或者CommandBar的FindControl方法来找到Menu。换句话,响应CommandBar的OnUpdate事件,在处理函数中检测期望的菜单是否被创建出来,若是,则加入自己的菜单项。四、Outlook的上下文菜单(右键菜单) Outlook的上下文菜单与Excel等软件不同,是动态创建的,即每次点右键的时候临时创建。同上述方法,OnUpdate的时候检测上下文菜单中是否包含我关心的菜单项,如果包含,把我自己的菜单项添加到它的前面/后面。上下文菜单与主菜单还有一个地方不同:它默认是不允许Customize的。Customize菜单之前要修改菜单的Protection属性,去掉msoBarNoCustomize。据说修改上下文菜单的这个属性,会使已显示出的的其它下拉菜单消失,因此应当只在有必要修改时才进行设置,即:if msoBarNoCustomize set, clear it.如果使用了IDispEventSimpleImpl来处理事件,要注意它只能同一个COM组件建立连接,在DispEventAdvise之前,要对前一个COM对象DispEventUnadvise。五、子窗口的菜单 双击一个Contact或者Task,会出现一个新窗口,这个窗口就是一个Inspector(参见COM对象的树状结构),Inspector也有自己的Bars,按如上方法处理即可,不再赘述。

outlook邮件如何内嵌附件在固定位置

步骤1:建立新的电子邮件:

在Outlook 2010/2013中,请点击新电子邮件按钮在全新组上主页标签。

在Outlook 2007中,请点击文件>全新>邮件讯息.

步骤2:将当前电子邮件转换为RTF格式。

在Outlook 2010/2013中,请点击富文本按钮在格式组上格式化文字标签。

在Outlook 2007中,请点击富文本按钮在格式组上附加选项标签。

步骤3:将光标置于撰写邮件正文中要添加附件的位置。

第3步:点击插入附件附加文件按钮或展望项目(或附加项目)按钮包括组上插页标签。

然后在d出的对话框中选择附件,然后单击OKor插页按钮。

然后,将附件文件或Outlook项目插入到您在步骤3中放置光标的位置。请参见以下屏幕快照:

如果要在编辑电子邮件时始终在电子邮件正文中插入附件,可以单击“文件”>“选项”>“邮件”,然后在“撰写邮件”部分的“以这种格式撰写的邮件”的下拉列表中选择“ RTF”。

在Outlook中回复带有原始附件的邮件

众所周知,当您在Outlook中将邮件回复给收件人时,附件将从原始邮件中删除。 如果您想保留附件来回复按摩,可以尝试Kutools 展望's带附件回复功能,它可以回复一封带有原始附件的邮件,也适用于所有messafe。

点击查看完整功能

60

天免费试用!

Kutools for Outlook:拥有数十个方便的 Outlook 插件,免费试用,无限制

60

天。

首先,我要说一下什么是插件(Add-in)

插件一般是对现有程序的扩展,微软的Office系统公开了一套接口,可以很方便地让开发人员基于这些接口去实现对Office应用程序的增强。这个接口,准确地说,就是Extensibility.IDTExtensibility2.

当然,除了Office,有很多应用程序都支持类似的扩展机制,例如IE,以及Visual Studio本身,都支持一定程序的扩展。

其次,我要说一下以前是怎么开发插件Add-in的

开发Office插件(Add-in)的途径有各种各样的,我大致总结分为三类:

VBA 开发:这个是基于Visaul Basic for Application这套开发模型做的一些定制。这种定制的限制比较多一些,但开发难度相对来说更加低一些。做过VBA开发的朋友都知道,VBA是脱离不了应用程序本身的。例如Excel的VBA编辑器如下图所示

VC++,Visual Basic开发:这种开发方式允许我们在VC++,或者VB 6中,直接实现Extensibility.IDTExtensibility2这套接口,并且可以更加灵活,做更加强大的一些定制。目前的Office应用程序中,默认就安装好了的一些插件,都是这种方式做的。例如下图是我的Outlook默认安装的一些插件列表

【备注】很早之前,我也用VB 6做过这方面的开发。但现在基本连VB 6的安装程序都找不到了。所以这里就不截图了,其实就是有一个项目模板,然后实现接口。开发这种插件,关键在于对Office本身内部的一些对象模型熟悉。

VSTO开发:所谓VSTO,全称是Visual Studio Tools for Office.我记得是从VS 2003开始提供了VSTO 1.0,简而言之,就是允许在.NET的开发环境中开发Office应用程序或者插件。这种方式有着显而易见的好处,就是能力增强,因为可以用到.NET的整套框架。VSTO发展到现在有几个版本,分别如下

VS 2003: VSTO 1.0

VS 2005: VSTO 2.0

VS 2008: VSTO 3.0

VS 2010: VSTO 4.0

VSTO 之前的版本有一些不太好的地方是部署,不要小看部署这个环节。如果你曾经花了很多精力写出来了一个很好的插件,但是因为各式各样的部署问题导致没有办法很顺利地分发给你的用户,那种感觉是很让人沮丧的。VSTO的解决方案有相当多的一些环境依赖,另外还需要提升.NET中的安全策略等等。

一个好消息是,现在的新版本中,开发和部署将是相对更加容易了。在开发方面,模板更加好用,也提供了对Ribbon的内置支持,部署方面,我们可以通过ClickOnce技术发布到网站,或者打包成一个vsto压缩包文件,很容易地进行部署。本文我们就来用一个简单例子进行说明。

然后,我们来看看在新版的开发工具中,如何快速高效地开发插件(Add-in)

作为演示,我主要侧重于开发和部署的流程。我们要实现的一个插件,其场景比较简单:

我们需要在Outlook中添加一个新的Ribbon按钮,该按钮点击之后,可以d出一个窗口,允许我们从Excel文件中导入联系人

那就让我们开始吧

第一步:创建一个Add-in项目

这个项目模板会自动创建下面的项目结构

【备注】在ThisAddin这个类中,可以很方便地访问到Outlook的当前实例,只要使用如下的代码即可

this.Application

第二步:添加一个Ribbon

我们需要为Outlook添加一个新的Ribbon按钮,事实上这很容易做到。

我们选择Ribbon(Visual Designer),这样就可以在可视化界面中设计了

我们首先需要设置一下,这个Ribbon是在什么地方要显示。在下图中,我们将RibbonType修改为Microsoft.Outlook.Explorer,这样的意思是说,我们这个Ribbon是现在在Outlook默认的那个管理器窗口中的

接下来,我们可以添加一个按钮到group1中去。工具箱中有很多可用的控件

我最好做好的Ribbon看起来像下面这样

第三步:实现简单的逻辑

接下来,我们可以为这个按钮实现简单的逻辑

通过双击该按钮,会产生一个事件处理器

我简单地实现代码如下

using System

using System.Collections.Generic

using System.Linq

using System.Text

using Microsoft.Office.Tools.Ribbon

using System.Windows.Forms

namespace OutlookAddInSample

{

public partial class MyRibbon

{

private void MyRibbon_Load(object sender, RibbonUIEventArgs e)

{

}

private void btImport_Click(object sender, RibbonControlEventArgs e)

{

Form form = new Form()

{

Text = "Import Contacts from Excel File",

StartPosition=FormStartPosition.CenterScreen

}

form.Show()

}

}

}

第四步:调试

完成如上的 *** 作之后,一个最简单的Add-in就做好了。那么如何进行调试呢?

没错,直接按F5就可以进行调试了。此时,Outlook会自动打开,然后我们的Ribbon也确实能看到了

点击该按钮,我们也确实可以看到一个窗口被显示出来了

同时,我们在Outlook的选项对话框中也能看到这个插件的信息

第五步:发布

如果我们在本机做好了调试,那么如何分发给用户呢?以前我们一般会制作一个MSI的安装程序,现在你依然可以这么做。但我今天主要介绍的是一种更加方便的部署方式,就是通过ClickOnce技术发布到网站或者文件夹中。

【注意】这里的location是可以有下面几种的。但我这里保持默认的选择,直接发布到一个文件夹

发布如果没有遇到什么错误的话,会生成下面的一个目录

我们一般可以将这个目录,打包给用户即可。

第六步:安装

接下来,用户如果拿到了这些文件,应该如何安装使用呢?其实也很简单,它可以双击setup.exe,或者设置直接双击vsto文件也可以

一般情况下,会有一个提示。

点击“install”

然后,我们再去打开Outlook的话,仍然是可以看到这个Add-in以及它所添加的Ribbon的

第七步:卸载

最后,如果用户需要卸载这个插件,应该怎么做呢?

他们可以在Programs and Features窗口中,找到这个插件,然后点击“Uninstall”即可


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11545818.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存