Я пытаюсь печатать на термопринтере, который использует ком-порт.И я хотел бы определить, подключен принтер или нет.
Я предполагал, что если я попытаюсь запустить коды, которые пытаются напечатать без подключения принтера, я получу какую-то ошибку.Поэтому я использовал блок try-catch.Ниже я попробовал следующее.
using System.IO.Ports;
private readonly SerialPort _printer = new SerialPort(Port, BaudRate, Parity, DataBits, Stopbits);
private void Print(string text)
{
try
{
if (!_printer.IsOpen)
_printer.Open();
_printer.WriteLine(text);
_printer.Close();
}
catch (Exception ex)
{
Logging.Log("PRINT ERROR: " + ex.Message);
}
}
В большинстве случаев, если вы пытаетесь печатать программно с отключенным принтером, блок кода, который пытается печатать, выдаст ошибку.
Но в этом случае коды выполнялись так, как если бы принтер был подключен, и не было выдано никаких ошибок.
Я также пробовал событие SerialPort.ErrorReceived
, но оно также не работало.
Итак, мне было интересно, есть ли способ определить состояние принтера (был ли он подключен или отключен).Спасибо за помощь.