我正在创建一个C#桌面应用程序。 我想一次只打开一个文档。 我怎么知道在我打开下一个之前用户已关闭已打开的word文档。
用户必须关闭已打开的word文档。
任何想法或建议都将受到赞赏。
答案 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;
}
}