Открытие последовательного порта, используемого принтером - PullRequest
1 голос
/ 12 мая 2009

Я отправляю коды 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 или не разрешается в действительный последовательный порт."

и для записи, это не ошибка "порт уже открыт".

Ответы [ 2 ]

0 голосов
/ 02 декабря 2009

COM1 удерживается драйвером принтера. Это предотвратит открытие порта Вашим приложением. Попробуйте переключить порт принтера в свойствах драйвера принтера на что-то другое, чем COM1. После этого Ваше приложение будет свободно использовать COM1.

0 голосов
/ 12 мая 2009

Я думаю, вам нужно отправить его в драйвер, а не в порт. Проверьте эту статью:

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

...