Как получить список всех принтеров в компьютере
Мне нужно получить список всех принтеров, которые подключаются к компьютеру?
Как я могу сделать это в C#, WinForms?
5 ответов:
попробуйте это:
foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters) { MessageBox.Show(printer); }
Если вам нужно больше информации, чем просто имя принтера, вы можете использовать
System.Management
API для запроса их: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); }
смотреть на статический!--1--система>.Рисунок.Печатающий.Свойство 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()); } }
Нажмите здесь, чтобы загрузить демо-версию источника и приложения
демонстрация приложения, в котором перечислены сетевой и локальный принтер