gpt4 book ai didi

c# - 进程 WaitForExit 不等待

转载 作者:行者123 更新时间:2023-11-30 19:54:45 26 4
gpt4 key购买 nike

我已经创建了 Print spooler 应用程序来异步打印 pdf。

(应用程序使用veryPDF命令从网络打印机打印)

这是代码

   var procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", " /c" + "E:\pdfprint_cmd\pdfprint.exe -$ 388444444448350FA394 E:\PrintSpoolerApplication\PrintSpoolerApplication\bin\Debug\45940.pdf");
procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
procStartInfo.Verb = "runas";
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
var proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();

// Some stuff

但它没有等待 WaitForExit 代码。即使我的文档在打印机队列中,它也确实执行了(此处//Some stuff)。

有没有其他方法可以在打印完成时进行通知?

最佳答案

您的代码等待 cmd.exe 完成,它(可能)在作为子进程启动 pdfprint.exe 后立即终止。我建议你

  • 要么直接启动 pdfprint.exe(为什么这里还需要 Windows 命令行?)
  • 或者找到子进程的 Process 对象——例如通过 WMI,as described here -- 而是等待那个进程退出。

但是,这两种方法只有在 pdfprint.exe 实际等待计划的打印作业完成时才有效。我不知道该工具,所以我不知道它是否以这种方式运行。如果没有,您将不得不访问打印队列,这是不推荐的(正如 Hans 在他的评论中指出的那样)。

关于c# - 进程 WaitForExit 不等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40764093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com