【发布时间】:2015-12-15 01:11:42
【问题描述】:
我在 Windows 8.1 计算机上安装了八台不同的打印机。这些打印机有不同的制造商和型号,有两台 HP LaserJet 打印机、一台 Epson 喷墨打印机、一台 CutePDF Writer、一台 Windows Fax 打印机等等。
对于我所有的打印机,对DeviceCapabilities 的调用返回-1,这意味着“不支持该功能或存在一般功能故障”。其他fwCapability 值,如DC_DUPLEX,成功。
DeviceCapabilities(pDevice, pPort, DC_MANUFACTURER, NULL, &devMode);
我的猜测是 DC_MANUFACTURER 和 DC_MODEL 是“较新的”,因此未实现。 CUPS 有一个printer-make-and-model 属性,必需的PPD 选项Manufacturer 和Model。
用Win32查询打印机的制造商和型号的正确方法是什么?
【问题讨论】:
-
您是否特别需要品牌和型号,或者您是否可以检索打印管理器用于识别打印机的相同字符串?
-
我将采用任何能够识别(甚至是粗略地)识别打印机类型的字符串。你有什么建议?
-
EnumPrinters()允许您枚举打印机并检索有关它们的信息,包括它们的名称。这就是你要找的吗? -
DC_MANUFACTURER 和 DC_MODEL 似乎没有记录。你是从哪里想到这些的?
-
DC_MANUFACTURER 和 DC_MODEL 在 WINVER >= 0x0400 的 WinGDI.h 中找到