vb.net - 如何在 vb .net 中获取任何已连接打印机的型号

标签 vb.net printers

正如问题所述,我需要使用 vb dotNet 找到打印机的型号。

目前一直在使用 EnumPrinters API 并检查驱动程序名称,但是某些打印机由同名驱动程序支持(即驱动程序支持一系列打印机),这不允许我区分它们。

我需要输出为 <manufacturer> <model> <codes> .

这可以用 vb.net/任何其他语言吗

最佳答案

不会为您编写整个代码,而是查看 DriverName 属性。在 Debug模式下运行整个过程以查看其他可用的属性。您需要添加对 System.Drawing 和 System.Management 的引用。

Imports System.Drawing.Printing
Imports System.Management


Module Module1

    Sub Main()
        Dim printers = PrinterSettings.InstalledPrinters

        For Each printerName As String In printers
            Dim query As String = String.Format("SELECT * from Win32_Printer WHERE Name LIKE '%{0}'", printerName)
            Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher(query)
            Dim collection As ManagementObjectCollection = searcher.Get()

            For Each printer As ManagementObject In collection
                For Each propData As PropertyData In printer.Properties
                    Debug.WriteLine(String.Format("{0}: {1}", propData.Name, propData.Value))
                Next
            Next
        Next
    End Sub

End Module

关于vb.net - 如何在 vb .net 中获取任何已连接打印机的型号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10678996/

相关文章:

c# - 使用 Silverlight/windows phone 样式控件设计我的 .Net 桌面应用程序 GUI

正则表达式查找不是句子中第一个单词的专有名词或短语

vb.net - 将 DotNetZip ZipFile 转换为字节数组

windows - 为什么我不能为 xps 驱动程序配置重定向端口

vbscript - 根据位置更改默认打印机

c# - 无论如何在生成进程时指定 PrintTo 打印机?

.net - 是否应该将 "Using"用于异步对象?

Vb.Net 范围问题 - 私有(private)字段

c# - 创建 C# 应用程序以配置打印机页面设置

printing - 如何连接或打印 ESC/POS 打印机?