获取本地可用的打印机列表
- 获取本地默认打印机名:
(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