我正在创建一个 C# 桌面应用程序。我想一次只打开一个文档。在我下次打开之前,我怎么知道已经打开的 Word 文档已被用户关闭。
用户必须关闭打开的 Word 文档。
任何想法或建议将不胜感激。
您能解释一下您的应用程序是如何与 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;
}
}