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

作者:edielei 时间:2022-07-29 02:54:38 

方法一

第一步:添加引用

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

来源:https://www.cnblogs.com/edielei/p/4966366.html

标签:C#,获取,打印机,列表
0
投稿

猜你喜欢

  • Java动态脚本Groovy

    2023-12-05 03:25:50
  • Maven 生成打包可执行jar包的方法步骤

    2023-01-02 14:53:15
  • Android实现Tab切换界面功能详解

    2022-01-17 16:11:57
  • Unity3D绘制地形的实现方法

    2022-12-01 01:06:46
  • 简单谈谈java中匿名内部类构造函数

    2021-09-08 18:54:10
  • Java NIO实战之多人聊天室

    2022-02-28 15:05:00
  • Android账号注册实现点击获取验证码倒计时效果

    2023-05-18 05:46:33
  • C#中泛型容器Stack<T>的用法并实现”撤销/重做”功能

    2021-06-27 04:12:00
  • C# this关键字的四种用法

    2022-10-06 07:09:22
  • C# 如何规范的写 DEBUG 输出

    2023-04-27 03:12:37
  • Java多线程之synchronized关键字的使用

    2023-12-12 21:46:16
  • Java 实战练习之网上电商项目的实现

    2021-07-17 04:23:59
  • Spring事务失效问题分析及解决方案

    2023-07-09 11:08:15
  • 基于Android实现点击某个按钮让菜单选项从按钮周围指定位置弹出

    2021-09-13 23:03:40
  • Spring Cloud 请求重试机制核心代码分析

    2023-04-11 04:00:23
  • C#使用NPOI将excel导入到list的方法

    2023-11-17 22:49:09
  • C#实现自定义光标并动态切换

    2021-09-25 09:06:28
  • SpringBoot零基础入门之基本操作与概念

    2023-10-25 00:41:36
  • Java过滤器Filter详解

    2022-06-27 04:08:44
  • 分享两种实现Winform程序的多语言支持的多种解决方案

    2023-10-17 21:24:17
  • asp之家 软件编程 m.aspxhome.com