Данный код реализует получение статуса принтера по IP адресу, через протокол SNMP/
using System; using OLEPRNLib;namespace PrinterStatus{ /// /// Summary description for Class1. /// class Class1 { /// /// The main entry point for the application. /// [STAThread] static void Main(string[] args) { string[] ErrorMessageText = new string[8]; ErrorMessageText[0] = "service requested"; ErrorMessageText[1] = "offline"; ErrorMessageText[2] = "paper jammed"; ErrorMessageText[3] = "door open"; ErrorMessageText[4] = "no toner"; ErrorMessageText[5] = "toner low"; ErrorMessageText[6] = "out of paper"; ErrorMessageText[7] = "low paper"; int DeviceID = 1; int Retries = 1; int TimeoutInMS = 2000; string CommunityString = "public"; string IPAddressOfPrinter = "10.3.0.93"; // Create instance of COM object OLEPRNLib.SNMP snmp = new OLEPRNLib.SNMP(); // Open the SNMP connect to the printer snmp.Open(IPAddressOfPrinter, CommunityString, Retries, TimeoutInMS); // The actual Warning/Error bits uint WarningErrorBits = snmp.GetAsByte(String.Format("25.3.5.1.2.{0}", DeviceID)); // The actual Status uint StatusResult = snmp.GetAsByte(String.Format("25.3.2.1.5.{0}", DeviceID)); // uint Result2 = snmp.GetAsByte(String.Format("25.3.5.1.1.{0}", DeviceID)); string Result1Str = ""; switch (StatusResult) { case 2 : Result1Str = "OK"; break; case 3 : Result1Str = "Warning: "; break; case 4 : Result1Str = "Being Tested: "; break; case 5 : Result1Str = "Unavailable for any use: "; break; default : Result1Str = "Unknown Status Code : "+StatusResult; break; } string Str = ""; if ((StatusResult == 3 || StatusResult == 5)) { int Mask = 1; int NumMsg = 0; for (int i=0; i< 8; i++) { if ((WarningErrorBits & Mask) == Mask) { if (Str.Length > 0) Str += ", "; Str += ErrorMessageText[i]; NumMsg = NumMsg + 1; } Mask = Mask * 2; } } Console.WriteLine(Result1Str + Str); } } }
0.00 (0%) 0 votes






