Вы можете проверить, подключен ли принтер к сети, но только , если у вас есть доступ к режиму ядра, если вы используете драйвер печати или под Windows 95/98.
Обычно адрес порта принтера устанавливается 0x378
(регистр данных параллельного порта). Добавление одного (0x379
) к этому дает нам адрес регистра состояния параллельного порта. Бит 4 регистра состояния (SELECT) сообщает нам, подключен ли принтер к сети или нет. если бит установлен, то принтер подключен
и если его 0, бит находится в автономном режиме.
Это может выглядеть так:
int status;
// get status register value at 0x379
status = _inp (0x379);
if (status & 0x10) // check bit 4
{
// printer online
}
else
{
// printer offline
}
Вот другой член этого регистра:
bit 1 : DCN
bit 3 : FAULT
bit 4 : SELECT
bit 5 : PAPER END
bit 6 : ACKNOWLEDGE
bit 7 : BUSY
Это исходит от кодегуру . Но учтите, что вам лучше использовать более высокий интерфейс, такой как API принтера в WIN32 (OpenPrinter (), WritePrinter () StarDocPrinter (), StartPagePrinter () и т. Д.)