gpt4 book ai didi

c# - 如何列出所有可用的打印机驱动程序,如 C# 中的添加打印机向导?

转载 作者:太空狗 更新时间:2023-10-29 20:34:43 26 4
gpt4 key购买 nike

很可能我必须为此写一些过于复杂的东西,而且没有常规的方法来做,但是:

我如何才能获得所有可用打印机驱动程序的列表,就像添加打印机向导按制造商然后按打印机显示它们一样?我基本上需要一个自定义添加打印机对话框,如果没有这个,我有点吃不消 ;)

像这样:(忽略箭头,借用的图片)

enter image description here

我还需要列表中驱动程序表示的 .inf 文件的路径

编辑:一点背景:

我试图通过在 TS session 中调用添加打印机向导(具有提升的权限)来添加打印机,将打印机添加到正确的 TS 端口,然后尝试保存该打印机的信息以便在登录用户时打印机是根据我保存的值自动添加的。

到目前为止,我还没有找到在添加打印机后获取驱动程序信息的方法(最好是该打印机驱动程序的 .inf 文件的实际路径,这样我就可以使用 PrintUI 安装打印机) .

因此,我使用自定义对话框来匹配打印机驱动程序。由于该工具仅在初始打印机安装时使用,并且仅供管理员使用,所以我不介意有一个辅助对话框,您可以在其中第二次选择驱动程序,这样我就可以保存信息。

编辑:针对 Windows Server 2008 R2(Win32_PrinterDriver 似乎不起作用)

最佳答案

您可以查询 WMI 以获取有关当前正在使用的打印机驱动程序的信息。 Win32_PrinterDriver class详细说明可用属性。您可以在 System.Management Namespace 中使用类执行查询。

SelectQuery selectQuery = new SelectQuery("Win32_PrinterDriver");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);

foreach (ManagementObject printerDriver in searcher.Get())
{
// Your code here.
}

您可以通过索引来访问属性,即 printerDriver["DriverPath"]

另见 WMI Queries MSDN 上的主题。

有趣的是,微软已经添加了一个 Get-PrinterDriver某些版本的 PowerShell(在 Windows 10 等上)的命令行开关,其功能与上述代码非常相似。

更新:我在查看旧问题时发现了 DriverStoreExplorer GitHub 上的项目。枚举所有打印机驱动程序的代码很多,因此在这里重现它没有意义。

关于c# - 如何列出所有可用的打印机驱动程序,如 C# 中的添加打印机向导?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com