一次打开一个word文档

时间:2013-10-10 15:00:42

标签: c# ms-word ms-office

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

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

任何想法或建议都将受到赞赏。

1 个答案:

答案 0 :(得分: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;
  }
}