尝试打印* .prn文件时出错

时间:2013-01-03 07:36:42

标签: c# winforms printing process

我在打印*.prn文件时遇到问题。这是代码:

Process process1 = new Process();
process1.StartInfo.FileName = "copy";
process1.StartInfo.Arguments = string.Format(@" /b C:/test/test.prn \\127.0.0.1\{0}",
                                                         SelectPrinterForm.selectedLine);
process1.Start();
SelectPrinterForm.selectedLine中的

我有选择打印机的名称。我在Start()方法上遇到错误信息无法找到文件

编辑(添加堆栈跟踪):

w System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
w System.Diagnostics.Process.Start()

问题:

为什么我有这个错误的任何建议?为什么当我使用“@”时,我仍然有"\\\\"而不是"\\"

帮助Hans Passant的解决方案和上面的回答

Process process1 = new Process();
string computerFullName = Program.GetFQDN();
process1.StartInfo.FileName = "cmd.exe";
process1.StartInfo.Arguments = string.Format(@" /c copy /B C:\test\test.prn \\{0}\{1}",
                                                     computerFullName,
                                                     SelectPrinterForm.selectedLine);
process1.Start();

1 个答案:

答案 0 :(得分:3)

  

有什么建议我有这个错误吗?

“copy”不是Windows中的可执行文件,它是命令解释程序,cmd.exe的命令。等价物是Filename =“cmd.exe”,Arguments =“/ c copy”+ string.Format(...)。您可能不会对命令窗口或产生的糟糕错误报告感到满意,请考虑使用File.Copy()。

  

另外,为什么当我使用“@”时,我仍然有“\\”而不是“\”?

这是一个调试器工件,它不知道你是否在代码中使用@在安​​全方面如此错误并将字符串显示为常规C#字符串文字。使用文本可视化工具按原样查看字符串,单击spyglass图标。