很可能我必须为此写一些过于复杂的东西,而且没有常规方法可以做到这一点,但是:
如何让自己获得所有可用打印机驱动程序的列表,就像添加打印机向导在制造商然后由打印机显示它们时所做的那样?我基本上需要一个自定义添加打印机对话框,没有这个,我有点塞;)
像这样:(忽略箭头,借来的图像)

我还需要列表中驱动程序表示的.inf文件的路径
编辑:一点背景:
我试图通过在TS会话中调用添加打印机向导(带有提升的私有)来添加打印机,将打印机添加到正确的TS端口,然后尝试保存该打印机的信息,以便在登录时添加用户打印机自动根据我保存的值.
到目前为止,我还没有找到一种方法来获取驱动程序信息(最好是该打印机驱动程序的.inf文件的实际路径,因为我可以使用PrintUI来安装打印机).
因此,我使用自定义对话框来匹配打印机驱动程序.由于该工具仅在初始打印机安装时使用,并且仅由管理员使用,因此我不介意在第二次选择驱动程序时使用辅助对话框,以便我可以保存信息.
编辑:针对Windows Server 2008 R2(Win32_PrinterDriver似乎不起作用)
您可以查询 WMI 以获取有关当前使用的打印机驱动程序的信息。Win32_PrinterDriver类详细介绍了可用属性。您可以使用System.Management 命名空间中的类来执行查询。
SelectQuery selectQuery = new SelectQuery("Win32_PrinterDriver");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject printerDriver in searcher.Get())
{
// Your code here.
}
Run Code Online (Sandbox Code Playgroud)
您可以通过索引来访问属性,即printerDriver["DriverPath"].
另请参阅MSDN 上的WMI 查询主题。
有趣的是,微软此后Get-PrinterDriver向某些版本的 PowerShell(在 Windows 10 等上)添加了一个命令行开关,其功能与上述代码非常相似。
更新:我在查看旧问题时发现了GitHub 上的DriverStoreExplorer项目。枚举所有打印机驱动程序的代码有很多内容,因此在这里复制它没有意义。
| 归档时间: |
|
| 查看次数: |
2648 次 |
| 最近记录: |