Process.WaitForExit(n) 不会在 Process.Start() 之后立即等待



代码:

using p = new Process();
p.StartInfo.UseShellExecute = true;
p.StartInfo.Verb = "printto";
p.StartInfo.FileName = fileName;
p.StartInfo.Arguments = printerName;
p.Start();
p.WaitForExit(20000);

有时投掷:

"System.InvalidOperationException:没有进程与此对象关联"来自CCD_ 1线。

我们从事件日志中捕捉到了这一点,所以它确实是这样发生的。我很困惑我们怎么会在";无过程";紧接在CCD_ 2之后的状态。我已经设法使不可运行的进程无法运行,但通过了p.Start()的预检,但它们总是创建一个句柄,所以.WaitForExit()总是通过报告它已经退出来工作。

我很困惑。ShellExecuteEx可能调用了某种DDE函数或其他无法识别进程的函数,但进程API似乎不支持该操作。调用代码也根本没有打开窗口,那么DDE源是什么?

我其实不需要在这里等;我只需要检测它是否是DDE或其他无稽之谈,否则只需少量睡眠就可以做我需要的事情。

有一个差点上当的结果是直接调用iexplore进程,我不能使用它。

您需要确保FilePath指向可打印文档(如pdf文档或rtf)。并将printerName放入Phrasesp.StartInfo.Arguments = """ + printerName + """;中,否则打印机将抛出错误。

相关内容

  • 没有找到相关文章

最新更新