C# 将打印机添加到LPT端口并用C向其发送文件#

C# 将打印机添加到LPT端口并用C向其发送文件#,c#,printing,zebra-printers,C#,Printing,Zebra Printers,我有一个命令shell脚本,它在LPT端口(打印机本身通过USB连接)上安装一台打印机(如果需要的话,它就是Zebra打印机),并向它发送一个文件,从而触发实际的打印。然后将打印机从端口中卸下 net use lpt1: \\MyComputer\MyPrinter copy D:\Test\Printout.epl lpt1 net use lpt1: /delete 如何使用C#code实现同样的功能?最简单:第一行和第三行使用Process.Start(),第二行使用File.Copy(

我有一个命令shell脚本,它在LPT端口(打印机本身通过USB连接)上安装一台打印机(如果需要的话,它就是Zebra打印机),并向它发送一个文件,从而触发实际的打印。然后将打印机从端口中卸下

net use lpt1: \\MyComputer\MyPrinter
copy D:\Test\Printout.epl lpt1
net use lpt1: /delete

如何使用C#code实现同样的功能?

最简单:第一行和第三行使用
Process.Start()
,第二行使用
File.Copy()
。请不要只要求我们为您解决问题。向我们展示你是如何试图自己解决问题的,然后向我们展示结果是什么,并告诉我们为什么你觉得它不起作用。请参阅“”,以获取您真正需要阅读的优秀文章。这需要pinvoke。您至少需要WNetAddConnection2()和WNetCancelConnection()。复制应该是有问题的,因为.NET通常拒绝设备名称,所以我认为File.copy()会失败。Pinvoke CopyFile()。使用.cmd文件当然是较低的痛点,但错误检查将是痛苦的。您可能真正想做的不是使用文件,而是使用。向供应商寻求帮助是合理的,你不是第一个尝试使用Zebra打印机的C#程序员。
private static void PrintFile(string path) {
string strCmdText = "/c copy " + path + " LPT1";
Process.Start("CMD.exe", strCmdText); }