none
C#使用wordApplication打开一个Word文档进行自动处理,但是文档存在密码,卡住了。 RRS feed

  • 问题

  • 我使用C#开发,利用的Office组件中的Word,在Open一个docx文件时,因为文件存在密码,所以界面卡主了,要求用户输入密码。

    但是我这个程序是要自动处理Word的,不需要人干预。

    该如何关闭密码框呢?或者如何判断docx是否存在密码,如果存在密码的话,我就跳过了。

    代码:

    wordApplication.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;//不提示报警
    wordDocument = wordApplication.Documents.Open(
                            ref paramSourceDocPath, ref paramMissing, ref paramMissing,
                            ref paramMissing, ref paramMissing, ref paramMissing,
                            ref paramMissing, ref paramMissing, ref paramMissing,
                            ref paramMissing, ref paramMissing, ref paramMissing,
                            ref paramMissing, ref paramMissing, ref paramMissing,
                            ref paramMissing);

    谢谢。

    2019年7月7日 15:24

全部回复

  • 随便在passwordDocument那个参数乱填一个值

    如果文档没有密码保护那么会直接打开,如果有密码保护而且密码错误会抛出异常。



    Visual C++ MVP

    2019年7月7日 20:32
    版主
  • 好的,谢谢,我试试。
    2019年7月8日 3:16
  • 您好,现在又出现了一个新的问题,就是程序在运行的时候,office软件偶尔弹出这个对话框:

    http://demo.dazhousoft.com:81/111.png

    如何能不提示这个对话框呢?谢谢

    (程序是在服务器上运行的)

    2019年10月18日 10:01
  • 你自己打开了什么文件自己不记得吗……

    如果不需要修改文档,可以在打开时指定以只读方式打开。



    Visual C++ MVP

    2019年10月20日 1:09
    版主
  • 经过一段时间观察, 这个方法可行。谢谢。
    2019年11月26日 3:32
  • 另外,还发现一个诡异的问题:

    服务器如果重启,且没有登录进去操作系统的前提下,

    我的服务程序调用Word组件进行Word转PDF就会失败。

    但是,一旦我登录进操作系统,无论什么用户登录进操作系统都行。这个word转PDF就又恢复正常了。

    大家谁知道这个该如何解决啊。因为服务器有重启的策略,我控制不了,然后重启以后,如果我不登录一下,程序就废了。

    2019年11月26日 3:35