2010-05-06 95 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)); 
      } 
     } 

    }