通过ManagementObject获取当前打印机设备的状态
首先声明一个打印机状态枚举:
public enum PrinterStatus
{
[Description("其他状态")]
Other = 1,
[Description("未知")]
Unknown = 2,
[Description("空闲")]
Idle = 3,
[Description("正在打印")]
Printing = 4,
[Description("预热")]
Warmup = 5,
[Description("停止打印")]
Stopped = 6,
[Description("离线")]
Offline = 7
}
获取打印机设备当前状态方法:
/// <summary>
/// 根据打印设备名获取该打印机当前状态
/// </summary>
/// <param name="PrinterDevice">设备名</param>
/// <returns>返回打印机状态枚举</returns>
public static PrinterStatus GetPrinterStatus(string PrinterDevice)
{
PrinterStatus ret = 0;
string path = @"win32_printer.DeviceId='" + PrinterDevice + "'";
ManagementObject printer = new ManagementObject(path);
printer.Get();
ret = (PrinterStatus)Convert.ToInt32(printer.Properties["PrinterStatus"].Value);
return ret;
}

浙公网安备 33010602011771号