2010-05-06 52 views
5

estoy en condiciones de obtener la lista de impresoras de red a través de este código:C# impresión en red

private void Form1_Load(object sender, EventArgs e) 
{ 
    foreach (String printer in PrinterSettings.InstalledPrinters) 
    { 
    listBox1.Items.Add(printer.ToString()); 
    } 
} 

Para cada impresora de red, quiero extraer más información como: (a) obtener información del documento, al igual número de páginas impresas, nombre de archivo, tamaño de archivo, etc.

(b) obtenga la dirección IP de la computadora desde la que se imprimió el documento.

(c) obtenga el nombre de usuario de quién imprimió el documento.

¿Cómo logro lo anterior? cualquier código de muestras sería apreciado. ¿Tengo que buscar productos de Windows Management Instrumentation (WMI)?

Respuesta

0

sí, yo soy capaz de obtener todas las propiedades y valores de WMI, de Win32_Printer mediante el siguiente código, pero podría no recuperar información básica como (a) obtener información del documento, como número de páginas impresas, nombre de archivo, tamaño de archivo, etc. (b) obtener la dirección IP de la computadora desde la que se imprimió el documento. (c) obtener el nombre de usuario de quién imprimió el documento.

Código:

private void Button1_Click (remitente del objeto, EventArgs e) { cadena nomImpr = "Ricoh-L4-1"; string query = string.Format ("SELECT * from Win32_Printer WHERE Name LIKE '% {0}'", printerName); ManagementObjectSearcher searcher = new ManagementObjectSearcher (consulta); ManagementObjectCollection coll = searcher.Get();

 foreach (ManagementObject printer in coll) 
     { 
      foreach (PropertyData property in printer.Properties) 
      { 
       listBox1.Items.Add(string.Format("{0}: {1}", property.Name, property.Value)); 
      } 
     } 

    }