方法一:使用 Windows API
EnumPrinters 枚举系统中安装的打印机
方法二:使用WMI
.NET 里面对WMI的使用,是放在 System.Management 这个空间下的,要使用的话,需要先添加对 System.Management.dll 引用
具体代码如下:
string wmiSQL = "SELECT * FROM Win32_Printer";
ManagementObjectCollection printers = new ManagementObjectSearcher(wmiSQL).Get();
foreach (ManagementObject printer in printers)
{
PropertyDataCollection.PropertyDataEnumerator pde = printer.Properties.GetEnumerator();
while (pde.MoveNext())
{
MessageBox.Show(pde.Current.Name + " : " + pde.Current.Value);
//显示的是 属性名 : 属性值 的形式
}
}
方法三:从注册表读取