很可能我必须为此编写一些过于复杂的东西,并且没有常规的方法来做到这一点,但是:
我怎样才能获得所有可用打印机驱动程序的列表,就像添加打印机向导按制造商然后按打印机显示驱动程序时所做的那样?我基本上需要一个自定义的添加打印机对话框,如果没有这个,我就有点吃不饱了;)
像这样:(忽略箭头,借用图片)
我还需要列表中驱动程序表示的 .inf 文件的路径
编辑:一点背景:
我尝试通过在 TS 会话中调用添加打印机向导(具有提升的权限)来添加打印机,将打印机添加到正确的 TS 端口,然后尝试保存该打印机的信息,以便在登录时添加用户打印机自动根据我保存的值。
到目前为止,我还没有找到一种方法来在添加打印机后获取驱动程序信息(最好是该打印机驱动程序的 .inf 文件的实际路径,因为这样我就可以使用 PrintUI 安装打印机)。
因此,我采用自定义对话框来匹配打印机驱动程序。由于该工具仅在初始打印机安装时使用,并且仅由管理员使用,因此我不介意有一个辅助对话框,您可以在其中再次选择驱动程序,以便我可以保存信息。
编辑:针对 Windows Server 2008 R2(Win32_PrinterDriver 似乎不起作用)
您可以查询 WMI 以获取有关当前使用的打印机驱动程序的信息。这Win32_PrinterDriver 类 http://msdn.microsoft.com/en-us/library/windows/desktop/aa394366%28v=vs.85%29.aspx详细说明可用的属性。您可以使用中的类系统.管理命名空间 http://msdn.microsoft.com/en-us/library/dwd0y33x.aspx执行查询。
SelectQuery selectQuery = new SelectQuery("Win32_PrinterDriver");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject printerDriver in searcher.Get())
{
// Your code here.
}
您可以通过索引来访问属性,即printerDriver["DriverPath"]
.
另请参阅WMI 查询 http://msdn.microsoft.com/en-US/library/ms186146%28v=VS.80%29.aspxMSDN 上的主题。
有趣的是,微软此后添加了一个Get-PrinterDriver https://learn.microsoft.com/en-us/powershell/module/printmanagement/get-printerdriver?view=win10-ps某些版本的 PowerShell(在 Windows 10 等上)的命令行开关,其功能与上述代码非常相似。
更新:我正在查看旧问题并发现驱动商店资源管理器 https://github.com/lostindark/DriverStoreExplorerGitHub 上的项目。枚举所有打印机驱动程序的代码有很多内容,因此在这里重现它没有意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)