none
Como obtener el nombre de la impresora por defecto desde un Servicio Windows RRS feed

  • Pregunta

  • Estoy intentando obtener el nombre de una impresora desde un servicio windows con 
    LocalPrintServer.GetDefaultPrintQueue() pero no tengo acceso.
    martes, 7 de noviembre de 2017 1:20

Respuestas

  • Otra forma es emplear una consulta WMI

    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;
    }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    martes, 7 de noviembre de 2017 6:35
    Moderador

Todas las respuestas

  • Hola, puedes acceder a las propiedades por defecto de la siguiente forma.

    PrintDocument printDocument = new PrintDocument(); 
    
    var defaultPrinter = printDocument.PrinterSettings.PrinterName;

    Si esto no funcionara puedes hacer lo siguiente

    var printerSettings = System.Drawing.Printing.PrinterSettings;
    var defaultPrinter 
    = printerSettings.PrinterName;


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    martes, 7 de noviembre de 2017 6:31
    Moderador
  • Otra forma es emplear una consulta WMI

    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;
    }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    martes, 7 de noviembre de 2017 6:35
    Moderador
  • Recuerda que la impresora predeterminada es "por usuario". Revisa las credenciales bajo las que está ejecutándose el servicio, puede que ni siquiera exista ninguna impresora predeterminada para esa cuenta.
    martes, 7 de noviembre de 2017 6:59
    Moderador