【发布时间】:2012-03-20 17:32:03
【问题描述】:
很可能我必须为此写一些过于复杂的东西,而且没有常规的方法来做到这一点,但是:
如何获得所有可用打印机驱动程序的列表,就像添加打印机向导在按制造商然后按打印机显示它们时所做的那样?我基本上需要一个自定义的添加打印机对话框,没有这个,我有点吃不消;)
像这样:(忽略箭头,借图)
我还需要列表中驱动程序表示的 .inf 文件的路径
编辑:一点背景:
我正在尝试通过在 TS 会话中调用添加打印机向导(具有提升的权限)来添加打印机,将打印机添加到正确的 TS 端口,然后尝试保存该打印机的信息,以便在用户登录时打印机是根据我保存的值自动添加的。
到目前为止,我还没有找到在添加打印机后获取驱动程序信息的方法(最好是该打印机驱动程序的 .inf 文件的实际路径,因为这样我可以使用 PrintUI 安装打印机) .
因此,我使用自定义对话框来匹配打印机驱动程序。由于该工具仅在初始打印机安装时使用,并且仅由管理员使用,我不介意有一个辅助对话框,您可以在其中再次选择驱动程序,以便我可以保存信息。
编辑:针对 Windows Server 2008 R2(Win32_PrinterDriver 似乎不起作用)
【问题讨论】:
-
尝试解析
%windir%\inf中的所有inf文件。祝你好运:-) -
@rekire 我的印象是驱动程序位于 %windir%\System32\DriverStore\FileRepository?这不正确吗?
-
@DanielA.White 好吧,如果我可以在其他地方获取信息,我就不需要它,基本上我是通过 printui.dll 添加打印机,PrintUIEntry /il 显示向导,然后我需要复制登录时 - 所以我试图记录打印机正在使用的驱动程序,以便在登录时重新添加它。
-
@DanielFrear 也许也在那里。我只知道在第一个路径中始终是 inf 文件。
-
@DanielFrear 你有没有为此设计过方法?我也想做同样的事情。但是,您所提到的接受的答案只会让您获得已经安装的内容。