我知道有很多关于暂停流程的帖子,直到申请没有结束。
实际上我想要做的是当我使用Process.Start()
方法在MS Word中加载word文件时,应用程序应该保持该过程,直到它没有被关闭。关闭这个word文件后,我也在数据库中更新它。所以我正在使用Process.WaitForExit()
方法。但是,这种方法在某些机器上不起作用。所以,我在msdn中已经了解了这个问题,他们建议我将Process.StartInfo.UseShellExecute
属性用于true
。但是,即使UserName属性被绑定,它也会引发错误。所以我决定创建自己的方法来保持这个过程。
foreach (Process c in Process.GetProcessesByName("WINWORD"))
{
while (c.MainWindowTitle.Contains("MyDOC NAME") && c.HasExited == false)
{} //this loop will hold the process until Word application doesn't get exited.
}
但是,这种方法也行不通。 Process
类对象的任何属性都没有任何值。 c.MainWindowTitle
显示空白,c.HasExited
抛出异常。
现在我被困在这里。我既不能使用Process.WaitForExit()
也不能使用上述方法。我还有另一个选项WMI Query来返回当前流程作为此post中给出的解决方案。但是,我不认为这种方法适用于这种情况。 当我的操作系统未使用ShellExecute时。
我只是想保持这个过程直到应用程序没有关闭。
任何帮助将不胜感激。
谢谢&此致