2010-05-06 12 views
5

Ich bin in der Lage, die Liste der Netzwerkdrucker über diesen Code zu erhalten:C# Network Printing

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

Für jeden Netzwerkdrucker, ich möchte gerne mehr Informationen extrahieren: (a) Dokument Informationen erhalten, wie Anzahl der gedruckten Seiten, Dateiname, Dateigröße usw.

(b) Ermitteln Sie die IP-Adresse des Computers, von dem das Dokument gedruckt wurde.

(c) erhalten Benutzername von wem das Dokument gedruckt hat.

Wie erreiche ich das oben genannte? Irgendwelche Codebeispiele würden geschätzt werden. Muss ich in Windows Management Instrumentation (WMI) Sachen schauen?

Antwort

0

ja, ich bin die Eigenschaften und Werte alle von WMI erhalten können, von Win32_Printer Code unten, aber ich konnte grundlegende Informationen wie nicht abrufen (a) erhalten Dokumentinformationen, wie Anzahl der gedruckten Seiten, Dateiname, Dateigröße usw. (b) erhalten Computer-IP-Adresse, von dem Dokument gedruckt wurde. (c) Erhalte den Benutzernamen, wer das Dokument gedruckt hat.

Code:

private void button1_Click (object sender, EventArgs e) { String printer = "Ricoh-L4-1"; Zeichenfolge Abfrage = Zeichenfolge.Format ("SELECT * aus Win32_Printer WHERE Name wie '% {0}'", printerName); ManagementObjectSearcher search = 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)); 
      } 
     } 

    }