Windows 查找打印机驱动程序名称

Windows 查找打印机驱动程序名称,windows,api,winapi,printing,Windows,Api,Winapi,Printing,我似乎找不到返回打印机驱动程序名称的Windows API调用。请注意,我指的不是打印机文件夹中打印机的友好名称,而是查看打印机属性时“高级”选项卡上显示的实际使用的驱动程序名称: 无论用户为打印机选择什么名称,我都试图检测何时打印到“通用/纯文本”驱动程序。这似乎并不难,但我在DEVMODE结构或其他任何我想寻找它的地方都找不到它 谢谢你的帮助 只是一个建议:使用procmon(来自sysinternals)监视所有API调用,并查看哪个调用返回此字符串。您要查找的是PRINTER\u IN

我似乎找不到返回打印机驱动程序名称的Windows API调用。请注意,我指的不是打印机文件夹中打印机的友好名称,而是查看打印机属性时“高级”选项卡上显示的实际使用的驱动程序名称:

无论用户为打印机选择什么名称,我都试图检测何时打印到“通用/纯文本”驱动程序。这似乎并不难,但我在DEVMODE结构或其他任何我想寻找它的地方都找不到它


谢谢你的帮助

只是一个建议:使用procmon(来自sysinternals)监视所有API调用,并查看哪个调用返回此字符串。

您要查找的是
PRINTER\u INFO\u 2
结构的
pDriverName
字段


您可以使用EnumPrinters获得它,然后您必须对打印机的
信息2::pPrinterName
和友好名称
DEVMODE

进行比较,这是个不错的主意,所以我尝试了一下。但这真的没用。它确认Windows最终将数据存储在注册表中,但我需要一个真正的有文档记录的API调用,而我在procmon数据中没有看到类似的内容(这并不奇怪,因为procmon只跟踪特定类型的API调用)。然后,您应该阅读[1]安装API[2]WMI。这就是其中之一。谢谢你——这正是我所需要的!