要获得打印机的状态,应该定义一个联合.

enum PrinterStatus
{
其他状态= 1,
未知,
空闲,
正在打印,
预热,
停止打印,
打印中,
离线
}

其中的"正在打印"和"打印中"是同一个意思,至于为什么会是这样,目前还不知道.

在程序中添加System.Management的引用:using System.Management;

然后编写获取打印机状态的函数如下:

 1 ///<summary>
2 /// 获取打印机的当前状态
3 ///</summary>
4 ///<param name="PrinterDevice">打印机设备名称</param>
5 ///<returns>打印机状态</returns>
6 private PrinterStatus GetPrinterStat(string PrinterDevice)
7 {
8 PrinterStatus ret=0;
9 string path=@"win32_printer.DeviceId='"+PrinterDevice+"'";
10 ManagementObject printer=new ManagementObject(path);
11 printer.Get();
12 ret=(PrinterStatus)Convert.ToInt32(printer.Properties["PrinterStatus"].Value);
13 return ret;
14 }

调用示例:

MessageBox.Show(GetPrinterStat("////192.168.0.88//Samsung SCX-4x16 Series").ToString());

 

 文章引用自http://www.cnblogs.com/zhwl/archive/2011/10/28/2227912.html

posted on 2011-10-28 17:00  Billy2046  阅读(376)  评论(0)    收藏  举报