积极答复者
关于win32_printer返回值的问题

问题
-
大家好,以下是判断打印机状态的,参照网上的文章写得,现在能够正常获取的状态是:空闲、正在打印。但是当我打印机关机或者Error状态时,仍是返回空闲,这是为什么呢?谢谢。
public enum PrinterStatus { 其他状态 = 1, 未知, 空闲, 正在打印, 预热, 停止打印, 打印中, 离线 } /// <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; }
- 已编辑 Oliver Dong 2011年2月14日 12:11
答案
-
Hi 星际,
给ManagementObject对象加上using块试试:
static PrinterStatus GetPrinterStat(string printerDevice){
PrinterStatus ret = 0;
string path = "win32_printer.DeviceId='" + printerDevice + "'";
using (ManagementObject printer = new ManagementObject(path))
{
printer.Get();
ret = (PrinterStatus)Convert.ToInt32(printer.Properties["PrinterStatus"].Value);
}
return ret;
}
Sincerely,
Leo Liu
Leo Liu [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Leo Liu - MSFTModerator 2011年2月17日 2:02
全部回复
-
Hi 星际,
欢迎来到MSDN论坛。
您的帖子还可以再次编辑,请在打开编辑窗口之后找到最右边的工具按钮“插入代码块”,在弹出窗口中选择“C#”。
这样重写编辑之后方便论坛的大侠和朋友们帮助你解决问题。
Sincerely,
Leo Liu
Leo Liu [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
-
Hi 星际,
给ManagementObject对象加上using块试试:
static PrinterStatus GetPrinterStat(string printerDevice){
PrinterStatus ret = 0;
string path = "win32_printer.DeviceId='" + printerDevice + "'";
using (ManagementObject printer = new ManagementObject(path))
{
printer.Get();
ret = (PrinterStatus)Convert.ToInt32(printer.Properties["PrinterStatus"].Value);
}
return ret;
}
Sincerely,
Leo Liu
Leo Liu [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Leo Liu - MSFTModerator 2011年2月17日 2:02