我正在尝试为给定的制造商枚举打印机型号。 Windows“添加打印机”在某种程度上可以做到这一点 - 即当在左侧列表中选择制造商时,右侧会显示打印机型号列表。
我熟悉EnumPrinters和EnumPrinterDrivers API,但两个相关结构(PRINTER_INFO *和DRIVER_INFO *)都不包含打印机模型。 DRIVER_INFO *确实包含制造商的名称,但我不确定在哪里可以找到相应驱动程序支持的打印机型号。
任何有关在线文档的建议和指示都将不胜感激。 感谢。
答案 0 :(得分:1)
EnumPrinterDrivers仅枚举已安装的打印机驱动程序。 “添加打印机”对话框显示可用的驱动程序,包括尚未安装的内置驱动程序。
内置驱动程序文件位于Driver Store。例如,如果在左窗格中单击HP,则HP 910和915的驱动程序位于此INF中:
C:\Windows\System32\DriverStore\FileRepository\prnhp003.inf_amd64_4480210763997eb4\prnhp003.inf
要安装这些广告,您可以尝试旧的Setup API或新的Windows Installer API。
似乎不是枚举Driver Store内容的公共API,而是DISM command line tool can。它将解析所有正确的文件夹和INF文件(对于收件箱驱动程序if you supply the /all switch to /get-drivers),然后您只需要解析输出。 E.g。
Dism /online /get-drivers /all /format:list >drivers.txt
(我确实建议DriverStore Explorer但事实证明,它只是Windows PnPUtil.exe工具的一个包装器,它不能枚举收件箱驱动程序。)