jacob操作word的问题

cdmamata 2012-05-09 05:05:19
jacob操作word,但是不知道什么情况,有一个word文档,会在极小概率下关闭不了,具体为什么关闭不了也不知道,于是导致再打开这个word时,总提示该word被锁定。
我的问题时,怎么才能在打开这个word之前,判断该word是否已经处于使用状态,如果是,则强行关闭。如果没有,则直接打开。
...全文
258 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangwei070 2012-05-14
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20091228/12/11116a96-afa6-4d46-af95-c649b855c90c.html


好久了 已经忘了。 而且现在基本舍弃这个东西了。 太不稳定了。 能不用就不用把。

cdmamata 2012-05-10
  • 打赏
  • 举报
回复
额,不好意思啊,关键是就问了没几个问题,而且问题都没有解决,所以还没有结贴。

还有,jacob中关闭的方法都有哪些?还有一个Dispatch.call()的方法能否详细解释一下。
tangwei070 2012-05-09
  • 打赏
  • 举报
回复
楼主的结贴率 不敢恭维
jacob 本来就不稳定。

可以试试 在调用word 打开方法之前 。 调用一个bat bat里面杀死word进程。
cdmamata 2012-05-09
  • 打赏
  • 举报
回复
还有 Dispatch 对象该怎么实例化,而且确保他在实例化时,不是又一次打开了那个文档,这个有办法实现吗?
cdmamata 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shadow4222 的回复:]

Java code

import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
* JAVA检测指定的进程是否在运行。
*
*
*/
public class TestFindProcessOfExe {
public static void main(String……
[/Quote]
杀进程有点麻烦了吧,而且还有许多其他地方操作wrod的,会不会把那些进程也杀了,现在我的想法是,能否判断该文档是否被使用。
shadow4222 2012-05-09
  • 打赏
  • 举报
回复
p.kill();
shadow4222 2012-05-09
  • 打赏
  • 举报
回复

import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
* JAVA检测指定的进程是否在运行。
*
*
*/
public class TestFindProcessOfExe {
public static void main(String[] args) {
System.out.println(findProcess("eclipse.exe"));
}
/**
* 检测程序。
*
* @param processName 线程的名字,请使用准确的名字
* @return 找到返回true,没找到返回false
*/
public static boolean findProcess(String processName) {
BufferedReader bufferedReader = null;
try {
Process proc = Runtime.getRuntime().exec("tasklist /FI \"IMAGENAME eq " + processName + "\"");
bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = null;
while ((line = bufferedReader.readLine()) != null) {
if (line.contains(processName)) {
return true;
}
}
return false;
} catch (Exception ex) {
ex.printStackTrace();
return false;
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (Exception ex) {}
}
}
}
}


杀进程吧...
cdmamata 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
Java code

ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
try
{

}
catch (Exception e)
{
……
[/Quote]
项目中是使用 dispatch 操作的,如何才能判断他是否关闭?
shadow4222 2012-05-09
  • 打赏
  • 举报
回复


ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
try
{

}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
app.invoke("Quit", new Variant[] {});
}


这样都不能关闭吗

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧