打印机状态返回错误值
本文关键字:错误 返回 状态 打印机 | 更新日期: 2023-09-27 18:08:40
我正在尝试获取网络打印机的状态。我尝试了这个链接所说的WMI代码。但是即使我拔掉了网线,它还是会转到else部分。
下面是我试过的代码:
ManagementObjectSearcher searcher = new
ManagementObjectSearcher("SELECT * FROM Win32_Printer");
string printerName = "";
foreach (ManagementObject printer in searcher.Get())
{
printerName = printer["Name"].ToString().ToLower();
if (printer["WorkOffline"].ToString().ToLower().Equals("true") && printer["Default"].ToString().ToLower().Equals("true"))
{
string s = "Printer offline" + printerName;
listBox1.Items.Add(s);
}
else
{
// printer is not offline
// Console.WriteLine("Your Plug-N-Play printer is connected.");
string s = "Printer found and is online " + printerName;
listBox1.Items.Add(s);
}
检查条件
printer["PrinterState"].ToString().ToLower().Equals("Offline")
// this would mean offline == Offline which would be false
你需要小写的比较,你有打字错误脱机有一个大写锁定 O
比较可能不对…因为语句
ConsoleWriteLine(printer["PrinterState"].ToString());
当打印机在线时返回"0",当由于任何原因(断电、卸载、电缆连接、网络故障等)导致该故障时返回"128"
正确的比较必须:
printer["PrinterState"].ToString().ToLower().Equals("128")
for off line
printer["PrinterState"].ToString().ToLower().Equals("0")
for online