字应用程序类问题

本文关键字:问题 应用程序 | 更新日期: 2023-09-27 18:36:40

我正在使用Microsoft.Office.Interop.Word.ApplicationClass来阅读一组Word文档。我能够很好地阅读它们,但我注意到根据 Windows 任务管理器,用于阅读这些文档的过程实际上永远不会结束。

从我谷歌的情况

来看,似乎没有其他人有这个问题,这让我相信我要么做错了什么根本性的事情,要么我缺乏在谷歌搜索中有效表达我的问题的能力。

我对 C# 比较陌生,所以我怀疑是前者。在下面找到我用于创建文档"阅读器"实例的代码。

private void readDoc(string docPath)
{
    Word.ApplicationClass wordApp = new Word.ApplicationClass();
    object nullObj = System.Reflection.Missing.Value;
    object roObj = true;
    object objFile = docPath;
    try
    {
        Word.Document doc = wordApp.Documents.Open(ref objFile,
            ref nullObj, ref roObj, ref nullObj, ref nullObj, ref nullObj,
            ref nullObj, ref nullObj, ref nullObj, ref nullObj, ref nullObj,
            ref nullObj, ref nullObj, ref nullObj, ref nullObj, ref nullObj);
        doc.ActiveWindow.Selection.WholeStory();
        doc.ActiveWindow.Selection.Copy();
        IDataObject tmpData = Clipboard.GetDataObject();
        string docText = tmpData.GetData(DataFormats.Text).ToString();
          (...)
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Data);
    }
}

try块的其余部分处理字符串docText,不涉及wordAppdoc,因此我没有将其包含在代码段中。

似乎没有.Word.ApplicationClass的 Dispose() 函数,所以我在这里有点不知所措。

编辑 - 抱歉,这里的隐含问题是:如何以编程方式结束该过程?

字应用程序类问题

你应该在代码中使用 Word.Application 类而不是 Word.ApplicationClass

Word.Application wordApp = new Word.Application();

完成后,您需要显式关闭文档和 Word 应用程序:

doc.Close();
wordApp.Quit();

尝试在readDoc()末尾添加以下内容:

wordApp.Quit(ref nullObj, ref nullObj, ref nullObj);

这是一个常见问题,本文对此进行了介绍。