네트워크 프린터의 상태를 얻으려고합니다. 이 link에 WMI 코드를 시도했습니다. 그러나 네트워크 케이블을 제거하더라도 항상 다른 부분으로 이동합니다. 여기 프린터 상태가 틀린 값을 반환합니다.
내가 노력 코드입니다 :printer["PrinterState"].ToString().ToLower().Equals("Offline")
// this would mean offline == Offline which would be false
당신이 낮은 경우에 비교를 필요 조건 밖으로
이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("0")
에 대한printer["PrinterState"].ToString().ToLower().Equals("128")
을하고 :해야? 당신은 왜 그것이 항상 else 파트를 때릴 지 알게됩니다. – V4Vendetta+1 좋은 관찰입니다. 하지만 그 가치를 인쇄했습니다. 항상 거짓입니다. – Zigma
@ V4Vendetta 안녕하세요 질문이 수정되었습니다. 지금 상태를 확인하십시오 – Zigma