Надеюсь, это будет один из тех простых ответов, которые настолько просты, что их трудно найти с помощью поиска (как большинство моих проблем с программированием в наши дни)
В настоящее время я пытаюсь создать сценарий VB.Net, который извлекает информацию об установленных принтерах. Я использую Visual Studio 2010 с пакетом обновления 1 (SP1), и поскольку моя целевая программа должна работать на старых компьютерах, в настоящее время она создается с использованием .Net 3.5.
Если посмотреть в Интернете, есть несколько способов сделать это, один из http://www.dotnetcurry.com/ShowArticle.aspx?ID=148 использует следующий код:
Dim oquery As System.Management.ObjectQuery = New System.Management.ObjectQuery("SELECT * FROM Win32_Printer")
Dim mosearcher As System.Management.ManagementObjectSearcher = New System.Management.ManagementObjectSearcher(oquery)
Dim moc As System.Management.ManagementObjectCollection = mosearcher.Get()
For Each mo As ManagementObject In moc
Dim pdc As System.Management.PropertyDataCollection = mo.Properties
For Each pd As System.Management.PropertyData In pdc
If CBool(mo("Network")) Then
cmbPrinters.Items.Add(mo(pd.Name))
End If
Next pd
Next mo
код должен использовать System.Management, как вы можете видеть. Однако после импорта System.Management Visual Studio выдает ошибку и заявляет, что ObjectQuery, ManagementObjectSearcher и ManagementObject не определены.
быстрый взгляд на форумах MSDN показывает , что ObjectQuery - это класс .Net 4, 3.5, 3.0 и 2.
Я полагал, что ошибка может быть в том, что у меня не установлен .Net 3.5 SDK, поэтому я установил .Net 3.5 SP1 SDK безрезультатно.
edit: просто чтобы прояснить, я импортирую System.Management вверху "Imports System.Management"