Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinForms-处理Word文档关闭事件_C#_.net_Winforms_C# 4.0_Ms Word - Fatal编程技术网

C# WinForms-处理Word文档关闭事件

C# WinForms-处理Word文档关闭事件,c#,.net,winforms,c#-4.0,ms-word,C#,.net,Winforms,C# 4.0,Ms Word,我有一个WinForms应用程序,可以提供Word文档的版本链接。当用户单击链接时,会打开Word文档。我的要求是,当他们打开Word文档、执行更改、保存然后关闭文档时,检测是否已进行了更改,并将具有新版本的副本上载到数据库 我目前做了以下工作: ProcessStartInfo psi = new ProcessStartInfo(FilePath) { UseShellExecute = true }; Process process = Process.Start(psi); proces

我有一个WinForms应用程序,可以提供Word文档的版本链接。当用户单击链接时,会打开Word文档。我的要求是,当他们打开Word文档、执行更改、保存然后关闭文档时,检测是否已进行了更改,并将具有新版本的副本上载到数据库

我目前做了以下工作:

ProcessStartInfo psi = new ProcessStartInfo(FilePath) { UseShellExecute = true };
Process process = Process.Start(psi);
process.EnableRaisingEvents = true;
process.Exited += process_Exited;
这似乎应该可以很好地工作,但是,我遇到了一些问题:

  • 用户只需关闭实际文档而无需关闭Word,退出的事件将永远不会触发
  • 如果Word在单击链接打开文档时已经打开,Process.Start方法将返回null
  • 我的用户可以关闭WinForms应用程序,Word文档可能仍处于打开状态。这可能会有问题,因为用户可能会在关闭应用程序后进行更改,并且这些更改不会保留到数据库中
  • 为了达到我想要的结果,我还有其他选择吗?有没有人做过类似的事情,可以为我解决问题提供任何指导


    提前感谢您的帮助。

    您可以为Word编写.NET插件。 这会让你在Word中对事件有更多的控制

  • 合作

  • (如果您的文档存储在中心位置)请尝试:

  • 处理“如果他们在关闭文档之前关闭我的应用程序”

    如果用户试图在word文档打开时关闭windorm应用程序:

    想法1: 1.隐藏winform应用程序 2.关闭文档后,退出winform应用程序

    想法2: 1.显示一条消息,说明他们必须在关闭应用程序之前关闭word文档


    我需要更多地了解该软件的目的是为了打造更好的解决方案

    我想你不妨试试Word COM库,我记不起他们现在是否有这样的活动,但值得一试。