以windows形式打印

本文关键字:式打印 windows | 更新日期: 2023-09-27 18:04:48

我有一个windows窗体应用程序,我试图打印一些东西,但如果没有实际的打印机(不是xps或其他东西),我想显示一个消息框,表明没有实际的打印机。所以简而言之,我想让它们打印当前计算机中是否有默认设置的真实打印机,这让我检查默认打印机是否真实。

以windows形式打印

您可以使用System.Management来完成此操作。使用下面的类来解决您的问题:

public class MyClass
{
    static void printProps(ManagementObject o, string prop)
    {
        try
        {
            Console.WriteLine(prop + "|" + o[prop]);
        }
        catch (Exception e)
        {
            Console.Write(e.ToString());
        }
    }
    [STAThread]
    static void Main(string[] args)
    {
        ManagementObjectSearcher searcher = new
        ManagementObjectSearcher("SELECT * FROM Win32_Printer where Default=True");
        string printerName = "";
        foreach (ManagementObject printer in searcher.Get())
        {
            printerName = printer["Name"].ToString().ToLower();
            Console.WriteLine("Printer :" + printerName);
            printProps(printer, "WorkOffline");
            //Console.WriteLine();
            switch (Int32.Parse(printer["PrinterStatus"].ToString()))
            {
                case 1: Console.WriteLine("Other"); break;
                case 2: Console.WriteLine("Unknown"); break;
                case 3: Console.WriteLine("Idle"); break;
                case 4: Console.WriteLine("Printing"); break;
                case 5: Console.WriteLine("Warmup"); break;
                case 6: Console.WriteLine("Stopped printing"); break;
                case 7: Console.WriteLine("Offline"); break;
            }
        }
    }
}