2010-05-06 52 views
5

tôi có thể để có được danh sách các máy in mạng thông qua mã này:C# Mạng In ấn

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

Đối với mỗi máy in mạng, tôi muốn trích xuất ra nhiều thông tin như: (a) thu thập thông tin tài liệu, như số trang được in, tên tệp, kích thước tệp, v.v.

(b) lấy địa chỉ IP máy tính từ tài liệu được in.

(c) nhận tên người dùng của người đã in tài liệu.

Làm cách nào để đạt được điều này? bất kỳ mẫu mã nào sẽ được đánh giá cao. Tôi có phải xem xét các công cụ Windows Management Instrumentation (WMI) không?

Trả lời

0

vâng, tôi có thể nhận được tất cả các thuộc tính và các giá trị từ WMI, của Win32_Printer sử dụng dưới mã, nhưng tôi có thể không truy xuất thông tin cơ bản như (a) nhận thông tin tài liệu, như số trang được in, tên tệp, kích thước tệp, v.v. (b) lấy địa chỉ IP máy tính mà từ đó tài liệu được in. (c) lấy tên người dùng đã in tài liệu.

Code:

private void button1_Click (object sender, EventArgs e) { chuỗi PrinterName = "Ricoh-L4-1"; truy vấn chuỗi = string.Format ("SELECT * từ Win32_Printer WHERE Name LIKE '% {0}'", printerName); ManagementObjectSearcher searcher = new ManagementObjectSearcher (truy vấn); 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)); 
      } 
     } 

    }