启动 Word 并监视文档是否关闭

发布于 2024-10-16 07:32:49 字数 136 浏览 8 评论 0原文

我们的学校项目需要一种启动单词实例并跟踪文档是否关闭的方法。 word 中的 COM api 没有这方面的事件,还有其他方法可以做到这一点吗?

目前我们正在使用 Word 中的 COM api,但其他一切都很好。我们正在使用 C# 进行编程。

we need for our school project a way to start a word instance and track if the document was closed. The COM api from word doens't have a event for this, are there any other ways to do this?

Currently we're using the COM api from word, but everything else would be fine. We're programing in C#.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

病女 2024-10-23 07:32:50

使用 winword 进程检查在特定文件上运行的进程是否退出。

如果您不知道新启动实例的进程,请使用此函数或简单地挂钩进程的退出事件。

获取所有文字进程

var info = Process.GetProcessesByName("winword").FirstOrDefault();

使用 Process.MainWindowTitle 识别特定文件的进程

挂钩进程的退出事件 Process.Exited

Use the winword process to check if process running on particual file is exited or not.

If you dont know the process of newly started instance use this or simply hook exited event of process.

Get all word processes

var info = Process.GetProcessesByName("winword").FirstOrDefault();

Identify the process of particular file using Process.MainWindowTitle

Hook exited event of the process Process.Exited

燕归巢 2024-10-23 07:32:50

如果您使用 Microsoft.Office.Interop.Word 库,您也可以订阅一个事件:

Microsoft.Office.Interop.Word.Application wordApp =
    new Microsoft.Office.Interop.Word.Application();
wordApp.DocumentBeforeClose +=
    new ApplicationEvents4_DocumentBeforeCloseEventHandler(
        wordApp_DocumentBeforeClose);

...

private void wordApp_DocumentBeforeClose(Document Doc, ref bool Cancel)
{
    // Do your thing
}

编辑:

处理文件锁定 ==>看看这篇文章 。正如您所看到的,在 DocumentBeforeClose 中完成了一些操作:

  1. 检查文档是否已保存。如果没有==>询问保存在哪里并自己完成。
  2. 自己关闭文档
  3. Close Word

处理完这些事情后,您就可以做您的事情了。锁应该被释放。

If your using the Microsoft.Office.Interop.Word library there is an event you can subscribe too:

Microsoft.Office.Interop.Word.Application wordApp =
    new Microsoft.Office.Interop.Word.Application();
wordApp.DocumentBeforeClose +=
    new ApplicationEvents4_DocumentBeforeCloseEventHandler(
        wordApp_DocumentBeforeClose);

...

private void wordApp_DocumentBeforeClose(Document Doc, ref bool Cancel)
{
    // Do your thing
}

Edit:

To take care of the file lock ==> take a look at this post. As you can see there are a few things done in the DocumentBeforeClose:

  1. Check if the document is saved. If not ==> ask where to save it and do it yourself.
  2. Close the document yourself
  3. Close Word

After these things are taken care of, you can do your stuff. The lock should be released.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文