using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Management; using System.Text; using System.Windows.Forms; namespace dccdc.Selfhelp { public partial class frm_TestPrinter : Form { public frm_TestPrinter() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //MessageBox.Show(GetPrinterStat(textBox1.Text).ToString()); //var a = System.Printing.LocalPrintServer.GetDefaultPrintQueue(); // textBox2.Text=a.IsTonerLow.ToString(); // textBox2.Text += Newtonsoft.Json.JsonConvert.SerializeObject(a); //new System.Drawing.Printing.PrinterSettings(). //Printer.GetPrinterList(); //Printer.GetPrinterStatusInt(textBox1.Text); //GetPrinterStat(textBox1.Text); //System.Printing.LocalPrintServer lps=new System.Printing.LocalPrintServer(); // lps. //System.Printing.LocalPrintServer lp = new System.Printing.LocalPrintServer(); //System.Printing.PrintServer ps=new System.Printing.PrintServer () //System.Printing.PrintQueue pq=new System.Printing.PrintQueue() //lp.ConnectToPrintQueue() ; //var b = lp.GetPrintQueue(textBox1.Text); GetPrinterStat(textBox1.Text); } private void GetPrinterStat(string PrinterDevice) { PrinterStatus ret = 0; string path = @"win32_printer.DeviceId='" + PrinterDevice + "'"; ManagementObject printer = new ManagementObject(path); printer.Get(); string strRow = ""; //ret = (PrinterStatus)Convert.ToInt32(printer.Properties["PrinterStatus"].Value); PropertyDataCollection.PropertyDataEnumerator pde = printer.Properties.GetEnumerator(); while (pde.MoveNext()) { strRow += pde.Current.Name + " : " +Newtonsoft.Json.JsonConvert.SerializeObject( pde.Current.Value )+ "\r\n"; //MessageBox.Show(pde.Current.Name + " : " + pde.Current.Value); //显示的是 属性名 : 属性值 的形式 } textBox2.Text = strRow; } enum PrinterStatus { 其他状态 = 1, 未知, 空闲, 正在打印, 预热, 停止打印, 打印中, 离线 } } }