3

我们在我们的服务中发现了一个似乎只存在于德语版 Microsoft Windows 中的错误。这是代码:

public Application OpenApplicationWithFile(object filename)
{
    object _missing = System.Reflection.Missing.Value;
    Application objWord = new Application();
    objWord.DisplayAlerts = WdAlertLevel.wdAlertsNone;
    objWord.Application.Visible = false;
    objWord.Documents.Open(ref filename, ref _readOnly, ref _missing, ref _missing, ref _missing,
                                   ref _missing,
                                   ref _missing, ref _missing, ref _missing, ref _missing, ref _isVisible,
                                   ref _missing,
                                   ref _missing, ref _missing,
                                   ref _missing, ref _missing);
    return objWord;
}

调试器挂在Documents.Open()调用上,并一直在那里等待 - 不会触发任何类型的异常或错误。我们查看了事件日志,但仅发现以下内容:

Das Dokument 'convert1002.doc' verursachte ein Problem, als zuletzt geöffnet wurde。Möchten Sie mit dem Öffnen fortfahren?

通过谷歌翻译成:

上次打开文档“convert1002.doc”时出现严重错误。您要继续打开它吗?

因此,Word 似乎只是问了用户一些问题,但是由于它是不可见的,因此用户不能完全单击是或否。将objWord.Application.Visible值更改为true不会改变任何内容 - 字处理仍然不可见。所以我的问题是如何调查这种情况的原因以及如何解决它。感谢您的任何意见。

4

2 回答 2

3

此错误可能发生在每个语言版本中,并且根据您使用的 Word 版本,阻止隐藏对话框可能并不容易。您使用哪个 Word 版本?

但首先,您的参数偏离了一个(我认为)。ReadOnly 是第三个参数,这就是为什么 _isVisible 我不工作的原因。

我尝试将 objWord.Application.Visible 设置为 true,它对我有用。也许还有其他问题?

一种快速的解决方案可能是将 OpenAndRepair 设置为 true。它是 13. 参数,就在 isVisible 后面。

否则,请查看此链接: 如何使用 Visual Basic 关闭 Office 应用程序显示的对话框

于 2013-09-11T11:12:54.293 回答
2

此问题可能类似于此处讨论的问题Interop.Word Documents.Open 卡住

当您尝试使用德语版本打开文件时,您是否尝试打开同一个文件?

尝试打开其他文件。

其他尝试设置:

objWord.DisplayAlerts = WdAlertLevel.wdAlertsAll;

和/或尝试将 openandrepair 设置为真,如 Uwe 所述:

Object obOpenAndRepair = true;
Document doc = word.Documents.Open(ref filename, ref _readOnly,
                    ref _missing, ref _missing, ref _missing, ref _missing, ref _missing,
                    ref _missing, ref _missing, ref oMissing,  ref _missing,ref _isVisible,
                    ref obOpenAndRepair, ref _missing, ref _missing, ref _missing);

希望这会有所帮助,祝你好运。

于 2013-09-12T06:59:20.107 回答