如何获得默认打印机的名字?
using System.Management;
private string GetDefaultPrint()
{
string selectPrinterName = "";
string _select = "SELECT * FROM Win32_Printer";
ManagementObjectSearcher query = new ManagementObjectSearcher(_select);
ManagementObjectCollection printCollection = query.Get();
foreach (ManagementObject p in printCollection)
{
if(p. ("SetDefaultPrinter") != null) //如何判断?
{
selectPrinterName = p["Name"].ToString();
break;
}
}
return selectPrinterName;
}
[解决办法]
PrinterSettings settings = new PrinterSettings();
Console.WriteLine(settings.PrinterName);
or
public static string GetDefaultPrinterName()
{
var query = new ObjectQuery("SELECT * FROM Win32_Printer");
var searcher = new ManagementObjectSearcher(query);
foreach (ManagementObject mo in searcher.Get())
{
if (((bool?) mo["Default"]) ?? false)
{
return mo["Name"] as string;
}
}
return null;
}