70 lines
2.5 KiB
C#
70 lines
2.5 KiB
C#
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,
|
|
未知,
|
|
空闲,
|
|
正在打印,
|
|
预热,
|
|
停止打印,
|
|
打印中,
|
|
离线
|
|
}
|
|
}
|
|
}
|