快乐的生活……

Office Com AddIn 开发心得

       最近开发了一个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

评论

#1楼 2005-03-28 16:45 Debbie      

最好能提供一些有关Office模型的开发知识
建议分专题来介绍
  回复  引用  查看    

#2楼 2005-04-05 09:46 QuitGame      

嗯 果然很有心得 支持分享 呵呵   回复  引用  查看    

#3楼 2005-06-27 10:53 CXL[未注册用户]

所以会导致后来打开word的时候有可能把以前设置好的word addin的变量的值更改的情况
~~~~~~~~~~~~~~~~~~
怎么解决 ?
  回复  引用    

#4楼 2005-06-27 14:12 mancini

to CXL:
在程序中使用Word.Application wordApp = new Word.ApplicationClass();然后用这个wordApp打开这样系统里面就有2个word进程了,自然不会冲突。
这是最好的办法,但是会导致多个word进程,计算机负载过多。
其实微软的说法是,addin是用来做一些通用的咚咚,而不是为了做一些特性化的咚咚(例如多每个文档有不同的属性值)。
所以在这么做之前应该想象有没有什么更好的变通的办法。
  回复  引用    

#5楼 2007-06-13 15:17 wxy[未注册用户]

推荐你一个专做office addin的地方
www.officeaddin.cn
  回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 120398




相关文章:

相关链接: