0

我最近问了几个与这个问题相关的问题,但这次我想尽可能直截了当地解决我在开发过程中遇到的问题。

我们正在尝试通过移动打印机打印票据,需要确定打印机是在线、离线还是有错误,以便我们更好地处理它: 在此处输入图像描述

这又是我打印时的代码片段,但如果出现任何问题,似乎无法让它陷入困境:

            Process process = new Process();
            //process.StartInfo.CreateNoWindow = true;
            process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            process.StartInfo.FileName = defFile;
            if (rwPrinter.Length > 0)
            {
                process.StartInfo.Verb = "printto";
                //process.StartInfo.Verb = (Path.Combine(System.Windows.Forms.Application.StartupPath, "printto.exe"));
                process.StartInfo.Arguments = "\"" + rwPrinter + "\"";
            }
            else
            {
                process.StartInfo.Verb = "print";
            }

            try
            {
                process.Start();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

请原谅我在这方面的仓促,因为我有一个不耐烦让我按要求工作的老板,请告诉我如何才能让它进入错误陷阱,谢谢。

4

1 回答 1

0

对于事后处理问题,您可以等待退出,然后检查ExitCode。如果处理打印的进程很好地报告了有意义的代码,您可以显示更有意义的消息,但这取决于被调用的进程。

try
{
      process.Start();
      process.WaitForExit();
      if (process.ExitCode >0)
      {
          MessageBox.Show(String.Fromat("print failed, exit code :{0} ", process.ExitCode ));
      }
}
catch (Exception ex)
{
      MessageBox.Show(ex.Message);
}
于 2013-11-01T17:40:59.597 回答