una seleccionar predeterminada paso obtener listar laptop instalar impresoras impresora conectar computadora como cambiar c# .net winforms

c# - seleccionar - Cómo obtener la lista de todas las impresoras en la computadora



obtener impresora predeterminada c# (5)

Necesito obtener la lista de todas las impresoras que se conectan a la computadora?

¿Cómo puedo hacerlo en C #, WinForms?



Prueba esto:

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


Si necesita más información que solo el nombre de la impresora, puede usar la API System.Management para consultarlas:

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); }

Ejemplo tomado de: http://www.snippetsource.net/Snippet/96/list-all-installed-printers


Obtenga la lista de impresoras locales y de red en ASP.NET

Este método utiliza el Instrumental de administración de Windows o la interfaz WMI. Es una tecnología utilizada para obtener información sobre varios sistemas (hardware) que se ejecutan en un sistema operativo 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()); } }

Haga clic aquí para descargar la demo de la fuente y la aplicación

Demo de la aplicación que enumera la red y la impresora local


public List<string> InstalledPrinters { get { return (from PrintQueue printer in new LocalPrintServer().GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }).ToList() select printer.Name).ToList(); } }