Click here to Skip to main content
15,885,886 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want to fatch My Default printer status which i have done using WMI but I am not able to understand in what condition it will return 1 (Means "Other") and what I have to do if it will return 1 whether I have to proceed the printing job or stop the printing?


My Code:
For fatch default printer:
C#
string GetDefaultPrinter()
        {
            PrinterSettings settings = new PrinterSettings();
            foreach (string printer in PrinterSettings.InstalledPrinters)
            {
                settings.PrinterName = printer;
                if (settings.IsDefaultPrinter)
                    return printer;
            }
            return string.Empty;
        }


for printer Status:
C#
ManagementScope scope = new ManagementScope(@"\root\cimv2");
                                scope.Connect();
                                //string MyprinterName = PrinterName;
                               
                                //Kco-Basmnt
                                ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * from Win32_Printer WHERE Name LIKE '%" + MyprinterName + "%'");
                                ManagementObjectCollection coll = searcher.Get();

                                foreach (ManagementObject printJob in coll)
                                {
                                    string Inf;
                                    // The format of the Win32_PrintJob.Name property is "PrinterName,JobNumber"
                                    string name = (string)printJob["Name"];
                                    string[] nameParts = name.Split(',');
                                    string Status = printJob["PrinterStatus"].ToString();
                                    Cur_PrinterStatus = GetPrinterStaus(Convert.ToInt32(Status));
                                    String pServer = name;
                                    String pQueue = Convert.ToString(printJob);
                                    Int16 jobID = Convert.ToInt16(1);
                                }
Posted
Updated 4-Feb-15 1:17am
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900