3

我想做以下事情:每当打开一个word文档时,我需要以某种方式保存它,然后如果用户开始输入它,我想保存文档被编辑的时间。我只是在第一阶段,我似乎无法检测用户何时打开文档。我尝试使用 Microsoft.Office.Interop.Word,但是,除非用户打开文档,否则我不想启动 word 应用程序。但是,当我想初始化 Microsoft.Office.Interop.Word.Application 时,这是我认为可能的唯一方法。有没有办法通过使用 Microsoft.Office.Interop.Word API 来检测用户打开文件的事件?

我尝试了以下方法(显然它不起作用,因为它只是打开了一个 word office 应用程序)

using Word = Microsoft.Office.Interop.Word;
Word.Application oWord = new Word.Application(); 
oWord.Visible = true;
oWord.DocumentChange += new Word.ApplicationEvents4_DocumentChangeEventHandler(oWord_DocumentChange);
...

private void oWord_DocumentChange()
{
   Console.WriteLine("DocumentChange");
}

另外,我想也许使用 Microsoft.Office.Interop.Word.Document,但不能。我开始开发自己的方法,但它似乎只是一种浪费,因为这个 api 已经构建。任何帮助都会很棒..谢谢。

4

2 回答 2

3

您是否已经尝试过创建应用程序级别的插件。该加载项应具有检测文档的第一次和最后一次更改所需的所有事件处理程序。

于 2012-06-17T16:54:49.177 回答
0

也许您可以经常检查 Word 的打开实例,如果找到,则使用互操作来获取该实例。

您可能可以使用FindWindowEnumWindows之类的东西来检查 Word 的实例(或者在 .Net 中可能有一些内置的方法,我现在不记得了),然后也许可以GetObject用来获取实例。这个链接描述了GetObjectvs CreateObject

于 2012-06-17T17:11:57.197 回答