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#获取打印机列表的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#调用打印机实现打印

    一.引用BarcodeStandard.dll #region BarcodeStandard.dll /* * * 使用说明 需要通过NuGet进行安装BarcodeLib.dll,必不可少 */ string inputString; /// <summary> /// 获取所以打印机驱动名称 /// </summary> private void getPrintDocumentlist() { PrintDocument print = new PrintDocument(

  • C# 获取打印机当前状态的方法

    要获得打印机的状态,应该定义一个联合. 复制代码 代码如下: enum PrinterStatus { 其他状态= 1, 未知, 空闲, 正在打印, 预热, 停止打印, 打印中, 离线} 其中的"正在打印"和"打印中"是同一个意思,至于为什么会是这样,目前还不知道. 在程序中添加System.Management的引用:using System.Management; 然后编写获取打印机状态的函数如下: 复制代码 代码如下: /// <summary> 

  • c# 实现打印机状态查询与阻塞打印

    在使用winform编写自动打印服务的过程中,发现只要进行了打印命令的调用,文档就会进入到打印等待队列,如果打印机无法正常工作,则会影响到相关业务数据的正确转换,所以需要检查打印机的状态来保障每次打印时打印机处于空闲状态,打印时队列中也只能有一个文档,本文是通过引用System.Management来实现对打印机状态的查询 打印机状态获取 enum PrinterStatus { 其他 = 1, 未知 = 2, 空闲 = 3, 打印 = 4, 预热 = 5, 停止打印 = 6, 脱机 = 7,

  • C#使用控制台列出当前所有可用的打印机列表

    本文实例讲述了C#使用控制台列出当前所有可用打印机列表的方法.分享给大家供大家参考.具体如下: // The initial C# code for the WMI query was generated by WMI Code //Generator, Version 5.00, http://www.robvanderwoude.com/wmigen.php using System; using System.Management; using System.Collections; na

  • c# 获取已安装的打印机并调用打印文件

    C# 获取所有安装了的打印机代码如下: using System.Drawing.Printing; var printers = PrinterSettings.InstalledPrinters; foreach (var item in printers) { Console.WriteLine(item.ToString()); } C# 调用打印机打印文件,通常情况下,例如Word.Excel.PDF等可以使用一些对应的组件进行打印,另一个通用的方式是直接启用一个打印的进程进行打印.示

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

    方法一 第一步:添加引用 using System.Printing; 第二步:代码 public static List<string> GetPrintList() { List<string> lt = new List<string>(); LocalPrintServer printServer = new LocalPrintServer(); PrintQueueCollection printQueuesOnLocalServer = printServ

  • React Hooks获取数据实现方法介绍

    目录 前言 useState useEffect 获取数据 前言 react16.8推出hooks更好的支持函数组件,使用函数组件更容易进行代码的复用,拓展性更强. useState useState类似于class组件的state功能,用于更新视图 import React, { Component, useState } from 'react'; export default function Hello() { const [count, setCount] = useState(0);

  • 从PySpark中的字符串获取列表方法讲解

    在 PySpark 中是否有类似eval的功能. 我正在尝试将 Python 代码转换为 PySpark 我正在查询一个数据框,并且其中一列具有数据,如下所示,但采用字符串格式. [{u'date': u'2015-02-08', u'by': u'abc@gg.com', u'value': u'NA'}, {u'date': u'2016-02-08', u'by': u'dfg@yaa.com', u'value': u'applicable'}, {u'date': u'2017-02-

  • Java编程获取文件列表及子文件目录的方法(非递归)

    废话不谈,直接进入正题,理解见代码注释. // 非递归 public List<String> scanFiles(String path) { List<String>filePaths = new ArrayList<String>(); LinkedList<File> list = new LinkedList<File>(); File dir = new File(path); File[] file = dir.listFiles(

  • php简单获取目录列表的方法

    本文实例讲述了php简单获取目录列表的方法.分享给大家供大家参考.具体实现方法如下: <?php function list_directory_content($dir){ if(is_dir($dir)){ if($handle = opendir($dir)){ while(($file = readdir($handle)) !== false){ if($file != '.' && $file != '..' && $file != '.htaccess'

  • PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法

    本文实例讲述了PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php     header("Content-Type: text/html; charset=UTF-8");     error_reporting(0);     /**      * 登陆      * $user 163用户名      * $pass 密码     **/     function login($user,$pass

  • 从对象列表中获取一个对象的方法,依据关键字和值

    如下所示: function getobj(objs, key, value) { for (var i in objs) { var obj = $(objs[i]); if (obj.attr(key) == value) { return obj[0]; } } return null; }; 以上这篇从对象列表中获取一个对象的方法,依据关键字和值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Mybatis中实体类属性与数据列表间映射方法介绍

    Mybatis不像Hibernate中那么自动化,通过@Column注解或者直接使用实体类的属性名作为数据列名,而是需要自己指定实体类属性和 数据表中列名之间的映射关系,这一点让用惯了Hibernate的人很不习惯,所幸经过探索找到了建立映射关系的三种办法,其中总也有比较 简单的. 首先先定义一个实体类,如下: public class User implements Serializable { private Integer userId; private String userName;

  • Java中获取键盘输入值的三种方法介绍

    程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 以下将列出几种方法: 方法一:从控制台接收一个字符,然后将其打印出来 public static void main(String [] args) throws IOException{ System.out.print("Enter a char

  • Python实现使用dir获取类的方法列表

    使用Python的内置方法dir,可以范围一个模块中定义的名字的列表. 官方解释是: Docstring: dir([object]) -> list of strings If called without an argument, return the names in the current scope. Else, return an alphabetized list of names comprising (some of) the attributes of the given o

随机推荐