private static ManagementObjectCollection queryCollection;
private static string _classname = "SELECT * FROM Win32_Printer";
Dictionary<string, ManagementObject> dict = new Dictionary<string, ManagementObject>();
ManagementObjectSearcher query = new ManagementObjectSearcher(_classname);
queryCollection = query.Get();
int count = 0;
foreach (ManagementObject mo in queryCollection)
{
string oldName = mo["Name"].ToString();
MessageBox.Show(oldName);
}
这个只能获得本地安装的打印机吧,无法识别局域网内的所有打印机吧
楼上这个方法太复杂了。有简单的
PrinterSettings 这里面有你需要的一切。
我使用InstalledPrinters 来获取本机安装的打印机列表。
http://msdn.microsoft.com/en-us/library/system.drawing.printing.printersettings.aspx
求教一下,有没有办法获得可用的所有打印机,包括本地安装的以及局域网内其他的打印机
//获取所有打印机名称
foreach (string sPrint in PrinterSettings.InstalledPrinters)
{
Console.WriteLine(sPrint);
}