使用ActiveXComponent word = ActiveXComponent.connectToActiveInstance("Word.Application")得到应用,引发的多线程问题。

1、 使用是同一word进程,Open或打开文档后,不能退出word即不能调用Quit。

2、 按照Selection的描述是ActiveWindow的属性,每个Document都有一个Selection,

使用word获取的是当前活动Document的Selection。故所有获取Selection都应以下述方式获取

Dispatch activeWindow = Dispatch.get(document, "ActiveWindow").toDispatch();
Dispatch selection = Dispatch.get(activeWindow, "Selection").toDispatch();

而不是

Dispatch selection = Dispatch.get(word, "Selection").toDispatch();

3、获取书签也同2,获取Document的Bookmarks属性对象。

4、关于Find对象,模版文档文字替换(经常用),经常使用word的同学都知道,文档A,打开的查找窗口和文档B(同Aword进程)的查找窗口,查找的属性是一致的。故代码编写时使用同步机制。

  锁定

    获取Find对象

Dispatch find = Dispatch.get(selection, "Find").toDispatch();

     设置查找内容

Dispatch.put(find, "Text", "查找内容");

   ...设置其它查找属性

执行查找

boolean result = Dispatch.call(find, "Execute").getBoolean();

  解除锁定

 

   

    

 

posted on 2015-01-14 20:30  hzw-httponly  阅读(357)  评论(0编辑  收藏  举报