Открытие последовательного порта, используемого принтером

StackOverflow https://stackoverflow.com/questions/850765

Вопрос

Я отправляю коды ESC/P (http://webpages.charter.net/dperr/links/esc_p83.htm) к принтеру Epson LX-300, который подключен к COM1, и на компьютере уже установлен правильный драйвер, потому что он нужен кому-то еще.

Итак, я написал это:

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.

Другие советы

Я думаю нужно отправлять именно в Драйвер а не в порт.Ознакомьтесь с этой статьей:

http://support.microsoft.com/kb/138594/EN-US/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top