2010-05-06 124 views
5

我能夠通過這個代碼來獲取網絡打印機列表:C#網絡打印

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

對於每個網絡打印機,我想提取出更多類似的信息: (一)獲取文件信息,如打印頁數,文件名,文件大小等。

(b)獲取打印文檔的計算機IP地址。 (c)獲取誰打印文檔的用戶名。

我如何達到上述目的?任何代碼示例將不勝感激。我必須查看Windows Management Instrumentation(WMI)的內容嗎?

回答

0

是的,我可以使用下面的代碼從WMI得到所有的屬性和值,Win32_Printer的,但我可以(a)獲取文檔信息,如打印頁數,文件名,文件大小等。 (b)獲取打印文檔的計算機IP地址。 (c)獲取打印文檔的用戶名。

代碼:

私人無效的button1_Click(對象發件人,EventArgs的) { 串PRINTERNAME = 「理光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)); 
      } 
     } 

    }