Открытие последовательного порта, используемого принтером
-
21-08-2019 - |
Вопрос
Я отправляю коды 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.
Другие советы
Я думаю нужно отправлять именно в Драйвер а не в порт.Ознакомьтесь с этой статьей: