Advertisement
sandunfx

printerStatus

Dec 11th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.22 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Management;
  7.  
  8. namespace PrinterPaper
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.  
  15.             int printerStatus = GetPrinterPaperLevel("CUSTOM TG2480-H");
  16.  
  17.             Console.WriteLine("P");
  18.             Console.Read();
  19.         }
  20.  
  21.         /// <summary>
  22.         /// -1 = Error
  23.         /// 0  = OK
  24.         /// 1  = Near Paper End
  25.         /// 2  = Paper not Present
  26.         /// </summary>
  27.         /// <param name="printerName"></param>
  28.         /// <returns></returns>
  29.         private static int GetPrinterPaperLevel(string printerName)
  30.         {
  31.             int status = -1;
  32.  
  33.             string queryWmi = string.Format("SELECT * from Win32_Printer WHERE Name LIKE '%{0}'", printerName);
  34.  
  35.             using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(queryWmi))
  36.             using (ManagementObjectCollection coll = searcher.Get())
  37.             {
  38.                 try
  39.                 {
  40.                     foreach (ManagementObject printer in coll)
  41.                     {
  42.                         foreach (PropertyData property in printer.Properties)
  43.                         {
  44.                             if (property.Name == "PrinterState")
  45.                             {
  46.                                 switch (property.Value.ToString())
  47.                                 {
  48.                                     case "0":
  49.                                         status = 0;
  50.                                         break;
  51.                                     case "131072":
  52.                                         status = 1;
  53.                                         break;
  54.                                     case "131088":
  55.                                         status = 2;
  56.                                         break;
  57.                                     default:
  58.                                         break;
  59.                                 }
  60.                             }
  61.                         }
  62.                     }
  63.                 }
  64.                 catch { }
  65.             }
  66.  
  67.             return status;
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement