检测用户何时打开word文档以及何时键入文档(在c#中)

检测用户何时打开word文档以及何时键入文档(在c#中),c#,office-interop,keyboard-events,C#,Office Interop,Keyboard Events,我想做以下几点: 无论何时打开word文档,我都需要以某种方式保存它,然后如果用户开始在其中键入,我希望保存文档正在编辑的时间。 我只是处于第一阶段,似乎无法检测用户何时打开文档。 我尝试使用Microsoft.Office.Interop.Word,但是,通过这种方式,除非用户打开文档,否则我不想启动Word应用程序。但是,当我想初始化Microsoft.Office.Interop.Word.Application时,这是唯一可行的方法。 有没有一种方法可以通过使用Microsoft.Off

我想做以下几点: 无论何时打开word文档,我都需要以某种方式保存它,然后如果用户开始在其中键入,我希望保存文档正在编辑的时间。 我只是处于第一阶段,似乎无法检测用户何时打开文档。 我尝试使用Microsoft.Office.Interop.Word,但是,通过这种方式,除非用户打开文档,否则我不想启动Word应用程序。但是,当我想初始化Microsoft.Office.Interop.Word.Application时,这是唯一可行的方法。 有没有一种方法可以通过使用Microsoft.Office.Interop.Word API来检测用户打开文件的事件

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

此外,我还想使用Microsoft.Office.Interop.Word.Document,但没能。 我开始开发自己的方法,但这似乎是一种浪费,因为这个api已经构建好了。
任何帮助都会很好。。谢谢。

您是否已经尝试创建了一个。该外接程序应该具有检测文档的第一次和最后一次更改所需的所有事件处理程序。

也许您可以经常检查Word的打开实例,如果您找到一个实例,则可以使用interop获取该实例


您可能会使用类似或的方法来检查Word的实例(或者在.Net中可能有一些内置的方法,我现在不记得了),然后可能会使用
GetObject
来获取实例。这描述了
GetObject
vs
CreateObject

我没有尝试过,但是您是否考虑过使用filewatcher检查文件的更新?您是否尝试过向文档添加宏?该宏应具有文档打开、文档更改和文档关闭的事件。通过互操作实现的Office自动化(您在这里描述的)和Office加载项(Ashish在回答中建议的)之间的区别在于您是否希望代码控制Office对象(自动化),或者您是否希望您的代码在正常使用Office(加载项)期间响应事件。感谢所有人的响应!非常感谢。我也尝试过在filewatcher中这样做。它确实有效,但很复杂。我在使用本基本手册时尝试了com插件:现在我唯一关心的是如何检测用户在word文档中何时进行键盘输入。我找不到任何可以描述这种情况的事件,正如我上面提到的,我的最终目标是总结用户处理文件的时间。这绝对是一种office插件解决方案,而不是互操作解决方案。感谢大家的回复!非常感谢。我也尝试过在filewatcher中这样做。它确实有效,但很复杂。我在使用本基本手册时尝试了com插件:现在我唯一关心的是如何检测用户在word文档中何时进行键盘输入。我找不到任何事件可以描述这样的内容,正如我前面提到的,我的最终目标是计算用户处理文件的时间。@dusm:正如Ashish所说,可能有一些事件可以让您注意到用户何时更改了文档中的内容。然而,如果出于某种原因这不合适,您可能可以使用a和a来查看什么时候发生了变化,但它可能会非常混乱。
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");
}