C# 打开打印机使用的串行端口
我正在将ESC/p代码()发送到一台连接到COM1的爱普生LX-300打印机,并且由于其他人需要,pc已经安装了正确的驱动程序 所以我写了这个:C# 打开打印机使用的串行端口,c#,printing,serial-port,epson,C#,Printing,Serial Port,Epson,我正在将ESC/p代码()发送到一台连接到COM1的爱普生LX-300打印机,并且由于其他人需要,pc已经安装了正确的驱动程序 所以我写了这个: using System.IO.Ports; public class EpsonPrint { private char esc = (char)27; private char ff = (char)12; public static void Main (string[] args) { new Ep
using System.IO.Ports;
public class EpsonPrint {
private char esc = (char)27;
private char ff = (char)12;
public static void Main (string[] args) {
new EpsonPrint();
}
public EpsonPrint() {
SerialPort port = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);
port.Open();
port.Write(esc+"@hola mundo!"+ff);
port.Close();
}
}
它可以工作,但只能在Epson驱动程序指向另一个端口或其他端口时工作,因为如果我让它使用COM1,上面的代码会抛出:
“给定的端口名不以COM/COM开头,或者未解析为有效的串行端口。”
请注意,这不是“端口已打开”错误。我认为您需要将其发送给驱动程序,而不是端口。查看本文:
COM1由打印机驱动程序保持。这将阻止应用程序打开端口。尝试将打印机驱动程序属性中的打印机端口切换到COM1以外的其他端口。在此之后,您的应用程序将可以免费使用COM1。好的,这不起作用,但谢谢。我的小C#完成了这项工作,但让原来的爱普生驱动程序处于禁用状态很烦人。呵呵,stackoverflow在跟我开玩笑,我怎么能只用1点声望就开始赏金呢?