Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Management;
- namespace PrinterPaper
- {
- class Program
- {
- static void Main(string[] args)
- {
- int printerStatus = GetPrinterPaperLevel("CUSTOM TG2480-H");
- Console.WriteLine("P");
- Console.Read();
- }
- /// <summary>
- /// -1 = Error
- /// 0 = OK
- /// 1 = Near Paper End
- /// 2 = Paper not Present
- /// </summary>
- /// <param name="printerName"></param>
- /// <returns></returns>
- private static int GetPrinterPaperLevel(string printerName)
- {
- int status = -1;
- string queryWmi = string.Format("SELECT * from Win32_Printer WHERE Name LIKE '%{0}'", printerName);
- using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(queryWmi))
- using (ManagementObjectCollection coll = searcher.Get())
- {
- try
- {
- foreach (ManagementObject printer in coll)
- {
- foreach (PropertyData property in printer.Properties)
- {
- if (property.Name == "PrinterState")
- {
- switch (property.Value.ToString())
- {
- case "0":
- status = 0;
- break;
- case "131072":
- status = 1;
- break;
- case "131088":
- status = 2;
- break;
- default:
- break;
- }
- }
- }
- }
- }
- catch { }
- }
- return status;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement