Necesito obtener la lista de todas las impresoras que se conectan a la computadora?Cómo obtener la lista de todas las impresoras en la computadora
¿Cómo puedo hacerlo en C#, WinForms?
Necesito obtener la lista de todas las impresoras que se conectan a la computadora?Cómo obtener la lista de todas las impresoras en la computadora
¿Cómo puedo hacerlo en C#, WinForms?
Prueba esto:
foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
{
MessageBox.Show(printer);
}
Mire la propiedad estática System.Drawing.Printing.PrinterSettings.InstalledPrinters.
Es una lista de los nombres de todas las impresoras instaladas en el sistema.
Gracias por enlace de MSDN! – paulsm4
Si necesita más información que sólo el nombre de la impresora, puede utilizar la API de System.Management
para consultar ellas:
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
Obtener 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());
}
}
Click here to download source and application demo
Demostración de aplicación que aparece a la red y la impresora local
es su demo en ASP.NET también? – AaA
public List<string> InstalledPrinters
{
get
{
return (from PrintQueue printer in new LocalPrintServer().GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local,
EnumeratedPrintQueueTypes.Connections }).ToList()
select printer.Name).ToList();
}
}
¿Puedes agregar una explicación para seguir el código? – jhpratt
¡También funciona para WPF, agradable! – kjhf