-1

我正在创建一个 C# 桌面应用程序。我想一次只打开一个文档。在我下次打开之前,我怎么知道已经打开的 Word 文档已被用户关闭。

用户必须关闭打开的 Word 文档。

任何想法或建议将不胜感激。

4

1 回答 1

0

您能解释一下您的应用程序是如何与 Word 文档交互的吗?如果您的应用程序是用户打开 word 文档的唯一方式,那么一旦打开文档,请设置一个变量:

bDocOpen = true;

关闭文档后,将其设置为 false。如果 bDocOpen 等于 true,则不允许打开文档。

编辑 您可以启动文档并等待该过程完成。这不是线程化的,因此您的应用程序将在文档关闭之前无响应。我想这种行为可能是一种防止打开多个文档的机制。然而,让您的应用程序无响应并不是一个好的做法,用户会认为有问题。

bool bDocOpen = false;

private void btnOpenDoc(object sender, EventArgs e)
{

  if (!bDocOpen)
  {
    ProcessStartInfo pInfo = new ProcessStartInfo();
    pInfo.FileName = @"C:\temp\word.doc";
    Process p = Process.Start(pInfo);
    p.WaitForInputIdle();
    p.WaitForExit();

    //Will not get here till process exits
    MessageBox.Show("Document closed");
    bDocOpen = false;
  }
}
于 2013-10-10T15:49:28.103 回答