最近开发了一个Word Com AddIn,发现Office还是有很多资源是我们没有充分利用的。先列出我参考的文章: http://www.microsoft.com/china/msdn/library/office/office/listbuttonfaces.mspx。介绍一个完整的建立AddIn的过程,并建立一个菜单枚举出office系统所有可用的图标。 http://www.microsoft.com/china/msdn/archives/library/dnofftalk/html/office05022002.asp。介绍操作Office工具栏。 http://www.microsoft.com/china/msdn/library/office/office/Office2003DeveloperToolProg.mspx。Office 2003 开发人员工具和程序概述。 下面是我在开发过程中注意到的一些问题: 1·不管是在文件夹中双击打开,还是在Word的菜单打开多个.doc文件,系统中使用的都是一个进程。 2·一个word进程对应一个addin实例(多个文档可以共用一个addin实例)。 3·可以在程序中使用Word.Application wordApp = new Word.ApplicationClass();(wordApp.Visible = true;使得word进程在界面可见)来产生多个word进程,从而可以获得多个addin实例。 4·可以在Word.Application 上登记文档对象的open,beforeclose,beforesave事件,来处理自己的业务。这些事件中都能获得文档对象的实例
5. Word.Application 上登记文档对象的beforeclose,beforesave事件中的取消事件发生的参数Cancel只在office2003中有效. 6. Visual studio自带生成的安装包一般不会将强名称的程序集(例如Microsoft.Office.Interop.Word)打包,这样可能有的客户(具体计算机的差异)无法引用到该程序集,所以word表现出的行为就是不加载该插件.为了保证所有的客户机都能使用建议把它打包进去. 7.由于word打开的机制是打开文档的时候看是否已经存在word进程,如果存在的话,就会附加到这个进程上。所以会导致后来打开word的时候有可能把以前设置好的word addin的变量的值更改的情况。(深刻教训)
posted on 2005-03-28 11:30 小诈 阅读(3034) 评论(6) 编辑 收藏 网摘 所属分类: Office
最好能提供一些有关Office模型的开发知识 建议分专题来介绍 回复 引用 查看
嗯 果然很有心得 支持分享 呵呵 回复 引用 查看
所以会导致后来打开word的时候有可能把以前设置好的word addin的变量的值更改的情况 ~~~~~~~~~~~~~~~~~~ 怎么解决 ? 回复 引用
to CXL: 在程序中使用Word.Application wordApp = new Word.ApplicationClass();然后用这个wordApp打开这样系统里面就有2个word进程了,自然不会冲突。 这是最好的办法,但是会导致多个word进程,计算机负载过多。 其实微软的说法是,addin是用来做一些通用的咚咚,而不是为了做一些特性化的咚咚(例如多每个文档有不同的属性值)。 所以在这么做之前应该想象有没有什么更好的变通的办法。 回复 引用
推荐你一个专做office addin的地方 www.officeaddin.cn 回复 引用
昵称: [登录] [注册]
主页:
邮箱:(仅博主可见)
验证码: 看不清,换一个
评论内容:
登录 注册
[使用Ctrl+Enter键快速提交评论]
Powered by: 博客园 Copyright © 小诈