C#获取打印机列表方法介绍

 更新时间:2022年07月05日 11:39:54   作者:edielei  
这篇文章介绍了C#获取打印机列表的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

方法一

第一步:添加引用

using System.Printing;

第二步:代码

public static List<string> GetPrintList()
{
    List<string> lt = new List<string>();
    LocalPrintServer printServer = new LocalPrintServer();
    PrintQueueCollection printQueuesOnLocalServer = printServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local });
    foreach (PrintQueue printer in printQueuesOnLocalServer)
        lt.Add(printer.Name);
    return lt;
}

方法二

需要引入

System.Drawing.Printing
System.Management

实现

1.获取打印机列表
2.获取默认打印机
3.设置默认打印机

上代码

    public class PrinterExample
    {
        /// <summary>
        /// 设置默认打印机
        /// </summary>
        /// <param name="Name"></param>
        /// <returns></returns>
        [DllImport("winspool.drv")]
        public static extern bool SetDefaultPrinter(String Name); //调用win api将指定名称的打印机设置为默认打印机

        /// <summary>
        /// 获取默认打印机
        /// </summary>
        /// <returns></returns>
        public static string GetDefaultPrinter()
        {
            PrintDocument print = new PrintDocument();
            string defaultName = print.PrinterSettings.PrinterName;//默认打印机名
            return defaultName;
        }

        /// <summary>
        /// 获取本地所有打印机
        /// </summary>
        /// <returns></returns>
        public static List<String> GetLocalPrinters()
        {
            List<String> printer_names = new List<String>();
           
            foreach (String item in PrinterSettings.InstalledPrinters)
            {
                printer_names.Add(item);

            }
            return printer_names;
        }

        /// <summary>
        /// 获取本地所有打印机 System.Management方式获取
        /// </summary>
        /// <returns></returns>
        public static List<String> GetLocalPrinters2()
        {
            List<String> printer_names = new List<String>();

            ManagementObjectCollection queryCollection;
            string _classname = "SELECT * FROM Win32_Printer";

            Dictionary<string, ManagementObject> dict = new Dictionary<string, ManagementObject>();
            ManagementObjectSearcher query = new ManagementObjectSearcher(_classname);
            queryCollection = query.Get();

            foreach (ManagementObject mo in queryCollection)
            {
                string oldName = mo["Name"].ToString();
                printer_names.Add(oldName);


            }
            return printer_names;
        }
    }

到此这篇关于C#获取打印机列表的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#中时间的几种格式转换方法

    C#中时间的几种格式转换方法

    有时候我们要对C#时间进行转换,达到不同的显示效果,这里简单介绍下,方便需要的朋友
    2013-09-09
  • C# 拓展方法的简单实例

    C# 拓展方法的简单实例

    这篇文章介绍了C# 拓展方法的简单实例,有需要的朋友可以参考一下
    2013-08-08
  • C#中接口(Interface)的深入详解

    C#中接口(Interface)的深入详解

    这篇文章主要给大家介绍了关于C#中接口(Interface)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 让C# Excel导入导出 支持不同版本Office

    让C# Excel导入导出 支持不同版本Office

    让C# Excel导入导出,支持不同版本的Office,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • C#使用RestSharp实现封装常用的http请求方法

    C#使用RestSharp实现封装常用的http请求方法

    这篇文章主要为大家详细介绍了C#如何使用RestSharp实现封装常用的http请求方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2024-02-02
  • WPF实现可视化扫码器的示例代码

    WPF实现可视化扫码器的示例代码

    AForge.NET 是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等领域。本文就将用它编写一个可视化扫码器,感兴趣的可以了解一下
    2022-11-11
  • 一种c#深拷贝方式完胜java深拷贝(实现上的对比分析)

    一种c#深拷贝方式完胜java深拷贝(实现上的对比分析)

    下面小编就为大家带来一篇一种c#深拷贝方式完胜java深拷贝(实现上的对比分析)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • 仿orm自动生成分页SQL分享

    仿orm自动生成分页SQL分享

    平时接触的数据库有sql2000-2008,Oracle,SQLite 。 分页逻辑,Oracle和SQLite相对好写,就SQL事多,Sql2000下只能用top,排序2次,而Sql2005+就可以使用ROW_NUMBER()分析函数了,据说Sql2012对分页又有了改进
    2014-01-01
  • C#项目中跨文件调用公共类的实例方法

    C#项目中跨文件调用公共类的实例方法

    在本篇文章里小编给大家整理的是关于C#项目中如何跨文件调用公共类的知识点内容,需要的朋友们学习下。
    2019-08-08
  • C#多维数组学习使用

    C#多维数组学习使用

    当下, 由于存储结构需要, 用多维数组, 顺便学习了一下, 将学习经过备忘如下
    2012-09-09

最新评论