如何在 vb .net 中获取任何已连接打印机的型号
Posted
技术标签:
【中文标题】如何在 vb .net 中获取任何已连接打印机的型号【英文标题】:How to get the model number of any connected printer in vb .net 【发布时间】:2012-05-21 02:48:03 【问题描述】:正如问题所述,我需要使用 vb dotNet 找到打印机的型号。
目前一直在使用 EnumPrinters API 并检查驱动程序名称,但是某些打印机由同名驱动程序支持(即驱动程序支持一系列打印机),这让我无法区分它们。
我需要输出为<manufacturer> <model> <codes>
。
vb.net/任何其他语言是否可以实现这一点
【问题讨论】:
也许您可以使用msdn.microsoft.com/en-us/library/aa394363%28VS.85%29.aspx 来获取您需要的打印机属性。我从未使用过winspool.drv。但是我已经使用 Win_32 完成了这样的任务,以便在服务器上连接打印机。 【参考方案1】:不会为您编写整个代码,但请查看 DriverName 属性。在调试模式下运行整个事情,以查看您可以使用的其他属性。您需要添加对 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 中打印带有标题的 datagridview 表?