2012-05-21 4 views
4

Как говорится в этом вопросе, мне нужно найти номер модели принтера, используя vb dotNet.Как получить номер модели любого подключенного принтера в vb .net

В настоящее время используется API EnumPrinters и проверка имени драйвера, однако некоторые принтеры поддерживаются одним и тем же драйвером (то есть драйвер поддерживает серию принтеров), что не позволяет мне различать их.

Мне нужен выход <manufacturer> <model> <codes>.

Возможно ли это с vb.net/any другой язык

+1

Может быть, вы можете использовать http://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