【发布时间】:2018-06-28 08:50:13
【问题描述】:
我有一个命令 shell 脚本,它在 LPT 端口(打印机本身通过 USB 连接)上安装打印机(如果重要的话,它是 Zebra 打印机)并向它发送一个触发实际打印的文件。然后打印机从端口移除
net use lpt1: \\MyComputer\MyPrinter
copy D:\Test\Printout.epl lpt1
net use lpt1: /delete
如何使用 C# 代码做同样的事情?
【问题讨论】:
-
最简单:
Process.Start()用于第一行和第三行,File.Copy()用于第二行。 -
请不要只要求我们为您解决问题。向我们展示您如何尝试自己解决问题,然后向我们确切地展示结果是什么,并告诉我们您为什么觉得它不起作用。请参阅“What Have You Tried?”了解您真正需要阅读的优秀文章。
-
这需要pinvoke。您至少需要 WNetAddConnection2() 和 WNetCancelConnection()。该副本应该是有问题的,因为.NET 通常会拒绝设备名称,所以我预计 File.Copy() 会失败。 Pinvoke CopyFile()。使用 .cmd 文件肯定是较轻的痛点,但错误检查会很痛苦。您可能真正想要做的不是使用文件,而是使用this code。向供应商寻求帮助是合理的,您不是第一个尝试使用 Zebra 打印机的 C# 程序员。
标签: c# printing zebra-printers