2010-05-06 11 views
5

io sono in grado di ottenere l'elenco delle stampanti di rete tramite questo codice:C# di stampa in rete

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

Per ogni stampante di rete, voglio estrarre ulteriori informazioni come: (a) ottenere informazioni sul documento, come numero di pagine stampate, nome file, dimensione file, ecc.

(b) ottenere l'indirizzo IP del computer da cui è stato stampato il documento.

(c) ottenere il nome utente di chi ha stampato il documento.

Come si ottiene quanto sopra? qualsiasi campione di codice sarebbe apprezzato. Devo esaminare gli oggetti di Strumentazione gestione Windows (WMI)?

risposta

0

sì, io sono in grado di ottenere tutte le proprietà ei valori da WMI, di Win32_Printer usando il codice qui sotto, ma ho potuto non recuperare informazioni di base come (a) ottenere informazioni sul documento, come il numero di pagine stampate, nome file, dimensioni file, ecc. (b) ottenere l'indirizzo IP del computer da cui è stato stampato il documento. (c) ottenere il nome utente di chi ha stampato il documento.

Codice:

private void button1_Click (object sender, EventArgs e) { stringa printerName = "Ricoh-L4-1"; string query = string.Format ("SELECT * from Win32_Printer WHERE Name LIKE '% {0}'", printerName); ManagementObjectSearcher searcher = new ManagementObjectSearcher (query); 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)); 
      } 
     } 

    }