Я пытаюсь получить статус сетевого принтера. Я пробовал код WMI, как это говорит link. Но даже если я удалил сетевой кабель, он всегда переходит в другую часть.Состояние принтера возвращает неправильное значение
Вот код, который я попробовал:
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);
}
вы имеете 'ToLower', а затем' Offline'? вы видите, почему он всегда будет ударять по другой части. – V4Vendetta
+1 Это хорошее наблюдение. Но я напечатал значение. Он всегда ложный. – Zigma
@ V4Vendetta привет, вопрос редактируется. проверьте состояние сейчас – Zigma