如何在 C# 中查找打印机类型?

How to find the printer type in c#?

如何在 c# 中找到安装在我们 PC 上的打印机类型,是点阵式、激光式还是喷墨式?

下面class告诉你打印机是点阵、激光还是喷墨:

using System;
using System.Management;

namespace ConsoleDemo
{
class Printer
{
 public enum TechnologyType
    {
        Other = 1,
        Unknown = 2,
        Electrophotographic_LED = 3,
        Electrophotographic_Laser = 4,
        Electrophotographic_Other = 5,
        Impact_Moving_Head_Dot_Matrix_9pin = 6,
        Impact_Moving_Head_Dot_Matrix_24pin = 7,
        Impact_Moving_Head_Dot_Matrix_Other = 8,
        Impact_Moving_Head_Fully_Formed = 9,
        Impact_Band = 10,
        Impact_Other = 11,
        Inkjet_Aqueous = 12,
        Inkjet_Solid = 13,
        Inkjet_Other = 14,
        Pen_ = 15,
        Thermal_Transfer = 16,
        Thermal_Sensitive = 17,
        Thermal_Diffusion = 18,
        Thermal_Other = 19,
        Electroerosion = 20,
        Electrostatic = 21,
        Photographic_Microfiche = 22,
        Photographic_Imagesetter = 23,
        Photographic_Other = 24,
        Ion_Deposition = 25,
        eBeam = 26,
        Typesetter = 27
    }
    
    public static void GetPrinterInfo()
    {
        var printerQuery = new ManagementObjectSearcher("SELECT * from Win32_Printer");
        foreach (var printer in printerQuery.Get())
        {
            var name = printer.GetPropertyValue("Name");
            var status = printer.GetPropertyValue("Status");
            var isDefault = printer.GetPropertyValue("Description");
            var MarkingTechnology = printer.GetPropertyValue("MarkingTechnology");
           var CurrentCapabilities = (string )printer.GetPropertyValue("CurrentCapabilities");
            Console.WriteLine("Name:{0} |(Status: {1} | Description: {2}| Technology: {3} | {4} ",
                name, status, isDefault, MarkingTechnology , CurrentCapabilities);
        }
    }

}

}

枚举 TechnologyType 为您提供打印机技术的类型。

更多信息回顾:Win32_Printer class