我在做BS程序
需要在服务器端后台打开WORD,设置修订状态,现在能正确关闭WORD进程了,
但是不排除以后出现异常时,WORD进程没有被关闭,
所以请问各位
怎么检测WORD文件是否被打开

解决方案 »

  1.   

    //返回值
    object oResult = null;
    oResult = Word1.Application.Documents.Open(.......)
    if (oResult != null)
    {
    //打开成功
    }
    else
    {
    //打开失败
    }
      

  2.   

    如果打开代码不出错,就证明打开了。或如三楼那样根据返回值判断。
    如果担心异常时,word进程没有关闭,可以try关闭一次。
      

  3.   

    三楼的方法
    在控制台下进行测试时,
    如果文件被占用
    则会提示你以三种方式打开
    需要你手动选择。
    暂未测试在其他的方式下的情况而且三楼的方式是要去捕获异常就像我以前判断输入的字符是不是INT
    直接整int.Parse方法来捕获异常判断是不是整数
    但是这样的方法对于小项目没问题
    对于一个大中型项目就有问题了
      

  4.   

    另外
    我说的没有关闭
    是指在TRY了后也没有正常关闭的情况下
    那么该进程肯定就会一直存在直到重启服务器或者关闭服务器
    如果下一次再去打开相同的WORD文件,而该WORD文件上次打开后未关闭
    则再次打开就会出现文件被占用
    现在我想的是  在这之前先检查所有的WORD的进程
    是否打开了相同WORD文档
    但是却没办法知道哪个WORD进程打开了我需要打开的WORD文档
      

  5.   

    查看进程是否有Word.exe进程打开,然后进行判断```