如何检测连接的USB打印机是打开还是关闭?
我想在打印之前检测打印机是否处于联机/脱机状态。 如果它处于脱机状态 - 打印对话框将不可见。
Win32 API的“OpenPrinter”等似乎在假脱机程序队列上工作,而不是在打印机本身上工作,并且只会在发送文档后离线报告打印机,这为时已晚。
问题 :如何确定打印机是否脱机/联机,而不发送打印件?
编辑:
Offline - printer is turned off
OnLine - printer is turned On
想必你知道打印机的名称或其他细节。
那么,只需使用PRINTER_INFO_2
使用EnumPrinters
并检查PRINTER_STATUS_OFFLINE
(或任何其他您希望避免的状态)。
或者,您可以尝试使用SetupDi*
函数(又名安装程序API)来确定在此刻是否连接了与打印机匹配的USB设备。
我不认为这是可能的。
正如您已经发现这是使用假脱机程序抽象出来的,假脱机程序状态并不总是反映打印机状态。
所以这是在Windows中设计的。
如果您只有一种特定的打印机类型,您可以查询它是否连接到USB。
链接地址: http://www.djcxy.com/p/56269.html