C#获取打印机列表方法介绍
短信预约 -IT技能 免费直播动态提醒
方法一
第一步:添加引用
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#获取打印机列表的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341