जवाबों:
इसे इस्तेमाल करे:
foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
{
MessageBox.Show(printer);
}
यदि आपको प्रिंटर के नाम से अधिक जानकारी चाहिए तो आप 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);
}
स्टैटिक सिस्टम को देखें। क्रैकिंग.प्रिन्टिंग.प्रिन्टरसेटिंग.इन्स्टाल्डप्रिंटर संपत्ति।
यह सिस्टम पर सभी स्थापित प्रिंटर के नामों की एक सूची है।
ASP.NET में नेटवर्क और लोकल प्रिंटर लिस्ट प्राप्त करें
यह विधि Windows प्रबंधन इंस्ट्रूमेंटेशन या WMI इंटरफ़ेस का उपयोग करती है। यह विंडोज ऑपरेटिंग सिस्टम पर चलने वाली विभिन्न प्रणालियों (हार्डवेयर) के बारे में जानकारी प्राप्त करने के लिए उपयोग की जाने वाली तकनीक है।
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());
}
}
स्रोत और एप्लिकेशन डेमो डाउनलोड करने के लिए यहां क्लिक करें
आवेदन का डेमो जो सूचीबद्ध नेटवर्क और स्थानीय प्रिंटर
आप LocalPrintServer वर्ग का भी उपयोग कर सकते हैं। देखें: System.Printing.LocalPrintServer
public List<string> InstalledPrinters
{
get
{
return (from PrintQueue printer in new LocalPrintServer().GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local,
EnumeratedPrintQueueTypes.Connections }).ToList()
select printer.Name).ToList();
}
}
डॉक्स में कहा गया है: System.Printing नामस्थान के भीतर कक्षाएं विंडोज सेवा या ASP.NET एप्लिकेशन या सेवा के भीतर उपयोग के लिए समर्थित नहीं हैं।
यदि आप MVC C # के साथ काम कर रहे हैं, तो यह ड्रॉपडाउन के लिए प्रिंटर और सीरियल पोर्ट से निपटने का तरीका है।
using System.Collections.Generic;
using System.Linq;
using System.IO.Ports;
using System.Drawing.Printing;
public class Miclass
{
private void AllViews()
{
List<PortClass> ports = new List<PortClass>();
List<Printersclass> Printersfor = new List<Printersclass>();
string[] portnames = SerialPort.GetPortNames();
/*PORTS*/
for (int i = 0; i < portnames.Count(); i++)
{
ports.Add(new PortClass() { Name = portnames[i].Trim(), Desc = portnames[i].Trim() });
}
/*PRINTER*/
for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++)
{
Printersfor.Add(new Printersclass() { Name = PrinterSettings.InstalledPrinters[i].Trim(), Desc = PrinterSettings.InstalledPrinters[i].Trim() });
}
}
}
public class PortClass
{
public string Name { get; set; }
public string Desc { get; set; }
public override string ToString()
{
return string.Format("{0} ({1})", Name, Desc);
}
}
public class Printersclass
{
public string Name { get; set; }
public string Desc { get; set; }
public override string ToString()
{
return string.Format("{0} ({1})", Name, Desc);
}
}