首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式在windows上获取给定制造商的所有打印机型号?

如何以编程方式在windows上获取给定制造商的所有打印机型号?
EN

Stack Overflow用户
提问于 2017-03-03 17:14:15
回答 1查看 943关注 0票数 1

我试图枚举给定制造商的打印机型号。Windows 'Add Printer‘可以这样做--也就是说,当制造商在左边的列表中被选中时,打印机型号的列表就会显示在右边。

我熟悉EnumPrinters和EnumPrinterDrivers API,但是相关的结构(PRINTER_INFO*和DRIVER_INFO*)都不包含打印机模型。DRIVER_INFO*确实包含制造商的名称,但我不知道在哪里可以找到相应的驱动程序支持的打印机型号。

任何对在线文档的建议和提示都将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-03-05 21:14:54

EnumPrinterDrivers只枚举已安装的打印机驱动程序。“添加打印机”对话框显示可用的驱动程序,包括尚未安装的内置驱动程序。

内置驱动程序文件在驱动程序存储中。例如,如果单击左侧窗格中的HP,则HP 910和915的驱动程序位于此INF中:

代码语言:javascript
复制
C:\Windows\System32\DriverStore\FileRepository\prnhp003.inf_amd64_4480210763997eb4\prnhp003.inf

要安装这些,您可以尝试旧的安装API或新的Windows安装程序API

似乎没有一个公共API来枚举驱动程序存储内容,而是DISM命令行工具。它将解析所有正确的文件夹和INF文件(用于收件箱驱动程序如果您向/get-驱动程序提供/all开关),然后只需要解析输出。例如。

代码语言:javascript
复制
Dism /online /get-drivers /all /format:list >drivers.txt

(我确实建议使用DriverStore资源管理器,但事实证明,这只是Windows PnPUtil.exe工具的一个包装器,无法枚举收件箱驱动程序。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42584834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档