在web工程中使用了jacob进行word文档的一些操作。try {
    ComThread.InitMTA();
    //do something
} catch (Exception e) {
    ComThread.Release();
}但是对于一些错误的文件,进行读取时会出现弹窗导致项目直接卡死在该段代码,必须远程到服务器把弹窗关掉。
请问有什么好的处理方式来处理弹窗确认的问题。

解决方案 »

  1.   

    最新想通过文件路径查找WINWORD.EXE进程的命令行,快接近成功的时候又被无情击败了。成功打开的word才会显示路径,出现弹窗的统一都是/Automation -Embedding
      

  2.   

    可以尝试换一个读取word的组件,例如poi。可以参考http://blog.csdn.net/tuzongxun/article/details/51992704
      

  3.   

    补充一下,卡死的代码为打开word时的操作Dispatch doc = Dispatch.call(documents, "Open", fileUrl).toDispatch();java代码运行到这里打开word时会因为服务器上的一个确认弹窗,导致代码卡死在这里。
    想通过jacob有获取到window的进程ID,然后超时后杀掉WINWORD.EXE进程。
    现在的主要问题是如何获取到对应的WINWORD.EXE进程。
      

  4.   

    请问楼主这个问题解决了吗?现在项目也碰到同样的问题,执行打开word的代码后会弹出一个框,提示“此文件中检测到错误,但Word可以通过进行以下修复来打开该文件……“
      

  5.   

    我们也碰到了这个问题,本来是想通过taskkill的方式杀掉挂掉的进程,不过这样好像也不行