如何检测是否安装了斑马打印机

本文关键字:安装 打印机 是否 何检测 检测 | 更新日期: 2023-09-27 18:33:33

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

感谢

如何检测是否安装了斑马打印机

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

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);
        }
    }
}