我正在使用此代码检查我的打印机是否在网络中。当我第一次点击“打印”按钮时,它给了我未连接状态。当我第二次打它成功打印时。但我的打印机总是在网络中。
public bool IsPrinterReady(string PrinterName)
{
ManagementScope scope = new ManagementScope(@"\root\cimv2");
scope.Connect();
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_Printer");
string strPrinter = string.Empty;
foreach(ManagementObject printer in searcher.Get())
{
strPrinter = printer["Name"].ToString();
if(strPrinter.ToLower() == PrinterName.ToLower())
return printer["PrinterStatus"].ToString().ToLower().Equals("3");
}
return false;
}
请注意,我总是将以下if语句的值设为true
if(strPrinter.ToLower() == PrinterName.ToLower())
我只是从
获得不同的值printer["PrinterStatus"].ToString()
提前致谢