C# 如何检测是否安装了zebra打印机

C# 如何检测是否安装了zebra打印机,c#,wmi,zebra-printers,C#,Wmi,Zebra Printers,我正在.Net(csharp 4.0)中开发一个应用程序,它检测是否安装了zebra打印机,然后如果在EPL中支持zpl,则向zpl中的打印机发送条形码。如何检查zebra打印机是否已安装或在网络上可用(共享打印机),如果是,它支持zpl或epl。我想检查设备Id。但看起来设备Id只是显示名称,当我从打印机和设备更改打印机名称时,设备Id会更改 thanx您不想查看型号名称。而是检查哪些驱动程序控制打印机。毕竟,支持ZPL的打印机将使用Zebra打印机驱动程序。您可以检查drivername属性

我正在.Net(csharp 4.0)中开发一个应用程序,它检测是否安装了zebra打印机,然后如果在EPL中支持zpl,则向zpl中的打印机发送条形码。如何检查zebra打印机是否已安装或在网络上可用(共享打印机),如果是,它支持zpl或epl。我想检查设备Id。但看起来设备Id只是显示名称,当我从打印机和设备更改打印机名称时,设备Id会更改


thanx

您不想查看型号名称。而是检查哪些驱动程序控制打印机。毕竟,支持ZPL的打印机将使用Zebra打印机驱动程序。您可以检查drivername属性,如下所示。当然,还有更多有关打印机的属性

using System;
using System.Management;

namespace Test
{
    class Program
    {
        public static void Main(string[] args)
        {
            string query = string.Format("SELECT * from Win32_Printer");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
            ManagementObjectCollection coll = searcher.Get();

            foreach (ManagementObject printer in coll)
            {
                //foreach (PropertyData property in printer.Properties)
                //{
                //    Console.WriteLine(string.Format("{0}: {1}", property.Name, property.Value));
                //}

                var property = printer.Properties["DriverName"];
                if (property.Value.ToString().ToLowerInvariant().Contains("zebra"))
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("ZEBRA: ");
                }
                else 
                {
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write("Regular: ");
                }

                Console.WriteLine(string.Format("{0}: {1}", property.Name, property.Value));
            }

            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

“自动发现”不会很好地工作。如果有两台打印机呢?这应该使用打印机名称进行配置,或者让用户使用PrintDialog选择打印机。我按照链接进行了操作,但无法找到找到型号的方法。你能再多给我引路一点吗。这会很有帮助。我给出了一个如何查找Zebra printers的示例。thanx,我的打印机驱动程序正在驱动程序名称中显示ZDesigner。所以,在检查司机时,我似乎需要同时处理斑马和zdesigner。