sandunfx

Untitled

Sep 23rd, 2020
1,110
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.        /// <summary>
  2.         /// -1 = Error
  3.         /// 0  = OK
  4.         /// 1  = Near Paper End
  5.         /// 2  = Paper not Present
  6.         /// </summary>
  7.         /// <param name="printerName"></param>
  8.         /// <returns></returns>
  9.         private int GetPrinterPaperLevel(string printerName)
  10.         {
  11.             int status = -1;
  12.  
  13.             string queryWmi = string.Format("SELECT * from Win32_Printer WHERE Name LIKE '%{0}'", printerName);
  14.  
  15.             using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(queryWmi))
  16.             using (ManagementObjectCollection coll = searcher.Get())
  17.             {
  18.                 try
  19.                 {
  20.                     foreach (ManagementObject printer in coll)
  21.                     {
  22.                         foreach (PropertyData property in printer.Properties)
  23.                         {
  24.                             if (property.Name == "PrinterState")
  25.                             {
  26.                                 switch (property.Value.ToString())
  27.                                 {
  28.                                     case "0":
  29.                                         status = 0;
  30.                                         break;
  31.                                     case "131072":
  32.                                         status = 1;
  33.                                         break;
  34.                                     case "131088":
  35.                                         status = 2;
  36.                                         break;
  37.                                     default:
  38.                                         break;
  39.                                 }
  40.                             }
  41.                         }
  42.                     }
  43.                 }
  44.                 catch(Exception ex)
  45.                 {
  46.                     txtLog.AppendText(ex.Message + "\n");
  47.                 }
  48.             }
  49.  
  50.             return status;
  51.         }
RAW Paste Data