C# 获取本地可用的打印机列表

获取本地可用的打印机列表获取打印机列表名字Demo

  1. 获取本地默认打印机名:
(new System.Drawing.Printing.PrintDocument()).PrinterSettings.PrinterName;

2.获取本地可用的所有打印机名:

ManagementScope ms = new ManagementScope(ManagementPath.DefaultPath);
ms.Connect();// 将此 ManagementScope 连接到实际的 WMI 范围
// WMI服务是一个win10系统插件,用户可通过WMI服务访问、配置、管理和监视几乎所有的Windows资源,
// 禁用wmi服务器可防止病毒入侵,确保系统安全

SelectQuery sq = new SelectQuery();
sq.QueryString = @"SELECT Name FROM Win32_Printer";

ManagementObjectSearcher mos = new ManagementObjectSearcher(ms, sq);
ManagementObjectCollection oObjectCollection = mos.Get();
List<string> list = new List<string>();
foreach (ManagementObject mo in oObjectCollection)
{
    list.Add(mo["Name"].ToString());
}
return list;

3.获取本地可用的所有打印机名(方法二):

List<string> PrintsList = new List<string>();
foreach (string sPrint in System.Drawing.Printing.PrinterSettings.InstalledPrinters)//获取计算机安装所有打印机的名称
{
    PrintsList.Add(sPrint);
}
return PrintsList;

4.使用文件资源管理器打开打印机管理面板

System.Diagnostics.Process.Start("rundll32.exe", "shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder");

5.C# demo
在这里插入图片描述
demo完整代码

using System;
using System.Collections.Generic;
using System.Management;
using System.Windows.Forms;

namespace PrintsName
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Button_print_Click(object sender, EventArgs e)
        {
            richTextBox.Clear();
            richTextBox.Text += "可用的打印机:" + "\r\n";
            // 获取默认打印机名
            string PrintName = (new System.Drawing.Printing.PrintDocument()).PrinterSettings.PrinterName;

            richTextBox.Text += "默认打印机名:" + PrintName + "\r\n";
            foreach (var item in AvailablePrinters())
            {
                richTextBox.Text += item + "\r\n";
            }

            richTextBox.Text += "第二种打印方法" + "\r\n";

            foreach (var item in UsablePrinters())
            {
                richTextBox.Text += item + "\r\n";
            }

           
        }

        /// <summary>
        /// 获取所有安装的打印机 名称列表
        /// </summary>
        /// <returns></returns>
        public static List<string> UsablePrinters()
        {
            List<string> PrintsList = new List<string>();
            foreach (string sPrint in System.Drawing.Printing.PrinterSettings.InstalledPrinters)//获取计算机安装所有打印机的名称
            {
                PrintsList.Add(sPrint);
            }
            return PrintsList;
        }

        /// <summary>
        /// 获取可用的打印机 列表
        /// </summary>
        /// <returns></returns>
        public static List<string> AvailablePrinters()
        {
            ManagementScope ms = new ManagementScope(ManagementPath.DefaultPath);
            ms.Connect();

            SelectQuery sq = new SelectQuery();
            sq.QueryString = @"SELECT Name FROM Win32_Printer";

            ManagementObjectSearcher mos = new ManagementObjectSearcher(ms, sq);
            ManagementObjectCollection oObjectCollection = mos.Get();
            List<string> list = new List<string>();
            foreach (ManagementObject mo in oObjectCollection)
            {
                list.Add(mo["Name"].ToString());
            }
            return list;
        }

        /// <summary>
        /// 使用文件资源管理器打开打印机管理面板
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_open_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("rundll32.exe", "shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder");
        }
    }
}

Demo免费下载

https://download.csdn.net/download/qq_44618510/87762036

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值