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