C# 打开打印机使用的串行端口

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

我正在将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 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点声望就开始赏金呢?