Hi there,

I need to write a program that will be able to determine when the printer is running low on paper and its status etc.
I currently have the following code but for some reason the state being returned is always 0. If the printer is off, on or whatever, it is returning only a 0. This WMI stuff is a little new to me so there may be a mistake that I cannot see, help would be appreciated. The printer I am trying to access is a POS printer that prints a receipt on purchasing credit for your mobile phone.

I know this is not the full correct code, but I would just like it to work so that I can understand it a little better and move on to what I need to do.

Thanks

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Management;

namespace printerWMITestAgain

{

class Program

{

static void Main(string[] args)

{

string status;

//Connection to WMI object

ConnectionOptions oConn = new ConnectionOptions();

ManagementScope oMs = new ManagementScope("\\\\EDREN-THINK\\root\\cimv2", oConn);

oMs.Connect();

//Query statement

ObjectQuery oQuery = new ObjectQuery("select PrinterState from Win32_Printer where Name =\"EPSON EU-T300 Receipt\"");

//Execute

ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery);

//Get Results

ManagementObjectCollection oReturnCollection = oSearcher.Get();

//Loop Through

foreach (ManagementObject oReturn in oReturnCollection)

{

status = oReturn["PrinterState"].ToString();

Console.WriteLine(status);

Console.ReadLine();

}

}

}

}