日期:2014-05-17  浏览次数:20897 次

如何获得默认打印机的名字?

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;