我可以通过以下代码获取网络打印机列表:
private void Form1_Load(object sender, EventArgs e)
{
foreach (String printer in PrinterSettings.InstalledPrinters)
{
listBox1.Items.Add(printer.ToString());
}
}
对于每台网络打印机,我想提取更多信息,例如: (a)获取文件信息,如打印的页数,文件名,文件大小等。
(b)从中获取打印文档的计算机IP地址。
(c)获取谁打印文件的用户名。
我如何实现上述目标?任何代码样本将不胜感激。我是否需要研究Windows Management Instrumentation(WMI)的内容?
答案 0 :(得分:1)
您可以通过WMI获取一些信息:
http://msdn.microsoft.com/en-us/library/Aa394363
如果您想了解更多信息,并且您的打印机支持它,您可以使用SNMP,这里有一篇文章\库,可以帮助您了解如何使用它:
答案 1 :(得分:0)
是的,我可以使用下面的代码从WinM_Printer的WMI获取所有属性和值,但我无法检索基本信息,如 (a)获取文件信息,如打印的页数,文件名,文件大小等。 (b)从中获取打印文档的计算机IP地址。 (c)获取谁打印文件的用户名。
private void button1_Click(object sender,EventArgs e) { string 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));
}
}
}