Как получить список всех принтеров на компьютере

Мне нужно получить список всех принтеров, которые подключаются к компьютеру?

Как я могу это сделать в C #, WinForms?

Попробуй это:

foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters) { MessageBox.Show(printer); } 

Если вам нужна дополнительная информация, а не только имя принтера, вы можете использовать API System.Management для их запроса:

 var printerQuery = new ManagementObjectSearcher("SELECT * from Win32_Printer"); foreach (var printer in printerQuery.Get()) { var name = printer.GetPropertyValue("Name"); var status = printer.GetPropertyValue("Status"); var isDefault = printer.GetPropertyValue("Default"); var isNetworkPrinter = printer.GetPropertyValue("Network"); Console.WriteLine("{0} (Status: {1}, Default: {2}, Network: {3}", name, status, isDefault, isNetworkPrinter); } 

Посмотрите на статическое свойство System.Drawing.Printing.PrinterSettings.InstalledPrinters .

Это список имен всех установленных принтеров в системе.

Получить список сетевых и локальных принтеров в ASP.NET

Этот метод использует инструментарий управления Windows или интерфейс WMI. Это технология, используемая для получения информации о различных системах (аппаратных средствах), работающих в операционной системе Windows.

 private void GetAllPrinterList() { ManagementScope objScope = new ManagementScope(ManagementPath.DefaultPath); //For the local Access objScope.Connect(); SelectQuery selectQuery = new SelectQuery(); selectQuery.QueryString = "Select * from win32_Printer"; ManagementObjectSearcher MOS = new ManagementObjectSearcher(objScope, selectQuery); ManagementObjectCollection MOC = MOS.Get(); foreach (ManagementObject mo in MOC) { lstPrinterList.Items.Add(mo["Name"].ToString()); } } 

Нажмите здесь, чтобы загрузить демо-версию и приложение

Демонстрация приложения, в котором указан сетевой и локальный принтер

введите описание изображения здесь

  public List InstalledPrinters { get { return (from PrintQueue printer in new LocalPrintServer().GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }).ToList() select printer.Name).ToList(); } } 
  • Максимальное количество символов, которое может отображать TextBox
  • Как правильно использовать LogonUser для олицетворения пользователя домена из клиента рабочей группы
  • Как обнаружить, что код C # Windows Forms выполняется в Visual Studio?
  • Передача переменной между winforms
  • Заполнение TreeView с помощью структуры каталогов файловой системы
  • Обнаружить изменение разрешения c # WinForms
  • C #: многострочный текст в элементе управления DataGridView
  • Управление объемом приложения: по идентификатору процесса
  • Как загрузить изображение с SQL Server в окно изображения?
  • Добавить элемент в элемент управления Listview
  • Использует ли Mutex для предотвращения безопасной работы нескольких экземпляров одной и той же программы?
  • Давайте будем гением компьютера.