Как определить, включен ли USB-принтер или нет? - PullRequest
7 голосов
/ 17 ноября 2011

Я хочу определить, подключен ли принтер к сети / отключен ДО при попытке печати.Если он находится в автономном режиме - диалоговое окно печати не будет видимым.

«OpenPrinter» и т. Д. Win32 API, кажется, работают в очереди очереди печати, а не на самом принтере, и будут сообщать о работе принтера только в автономном режиме ПОСЛЕ документ отправлен, что слишком поздно.

ВОПРОС : Как я могу узнать, находится ли принтер в автономном / онлайн-режиме без отправки на него распечатки?

РЕДАКТИРОВАТЬ:

Offline - printer is turned off
OnLine  - printer is turned On

Ответы [ 2 ]

4 голосов
/ 17 ноября 2011

Предположительно, вы знаете имя принтера или другие сведения о нем.

Ну, тогда просто используйте EnumPrinters с PRINTER_INFO_2 и проверьте на PRINTER_STATUS_OFFLINE (или любой другой статус, который вы хотите избегать ).

Кроме того, вы можете попытаться использовать функции SetupDi* (иначе, API настройки), чтобы выяснить, подключено ли USB-устройство, соответствующее принтеру, в данный момент.

0 голосов
/ 17 ноября 2011

Я не думаю, что это возможно.

Как вы уже узнали, это абстрагируется с помощью диспетчера очереди печати, и состояние диспетчера очереди не всегда отражает состояние принтера.

Так что это специально для Windows.

Если у вас есть только один определенный тип принтера, вы можете запросить, подключен ли он к USB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...