当用户打开Word文档,并检测当他在它的类型(在C#)(detecting when a user

2019-09-18 04:30发布

我想做到以下几点:每当一个Word文档被打开,我需要将其保存的方式,然后如果用户开始在它打字,我想保存文档正在编辑的时间。 我只是第一个阶段,我似乎无法进行管理,当用户打开一个文档检测。 我试着用的Microsoft.Office.Interop.Word,但是,这种方式我不想除非用户打开文档启动Word应用程序。 但是,当我要初始化Microsoft.Office.Interop.Word.Application,这是我看到的唯一可能的途径。 有没有一种方法,通过API的Microsoft.Office.Interop.Word检测用户打开一个文件的事件?

我试过以下(显然这是行不通的,因为它只是打开了一个字办公应用)

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已经建立一种浪费。 任何帮助将是巨大的..谢谢。

Answer 1:

你是否已经尝试创建一个应用程序级外接 。 该加载项应该有你需要检测到该文档的第一个和最后变化的所有事件处理程序。



Answer 2:

也许你可以保持经常检查每一个字的开放情况,如果你发现一个,然后使用互操作来获得该实例。

你也许可以使用类似FindWindow函数或EnumWindows的检查字的实例(或可能有一些建在做,在我不记得现在的.Net的方式),然后也许使用GetObject来获得实例。 此链接描述GetObject VS CreateObject



文章来源: detecting when a user opens a word document and when he types in it (in c#)