首页新闻找找看学习计划

C# 怎么获取可用的打印机列表。

0
[已解决问题] 解决于 2014-02-12 11:56

 

就像上面,当在项目页面上点击 “打印” 按钮会弹出这样的对话框。

现在我不打算弹出这个对话框,而是通过一个下拉列表框来存放本机连接到网络中的可用的打印机名称列表。

例上图,检查到3个打印机,一个\\172.16.3.247\hp laser jet 1320 ps为本机连接到的网络打印机。另外连个是本机上检查到的。

如何只获取打印机列表?

Cornelius的主页 Cornelius | 初学一级 | 园豆:80
提问于:2013-10-23 08:07
< >
分享
最佳答案
0

private static ManagementObjectCollection queryCollection;
private static string _classname = "SELECT * FROM Win32_Printer";

Dictionary<string, ManagementObject> dict = new Dictionary<string, ManagementObject>();
ManagementObjectSearcher query = new ManagementObjectSearcher(_classname);

queryCollection = query.Get();

int count = 0;

foreach (ManagementObject mo in queryCollection)
{
string oldName = mo["Name"].ToString();
MessageBox.Show(oldName);
}

Cornelius | 初学一级 |园豆:80 | 2013-10-23 08:31

这个只能获得本地安装的打印机吧,无法识别局域网内的所有打印机吧

Memento | 园豆:126 (初学一级) | 2015-02-16 16:47
其他回答(2)
0

楼上这个方法太复杂了。有简单的

PrinterSettings 这里面有你需要的一切。

我使用InstalledPrinters 来获取本机安装的打印机列表。

http://msdn.microsoft.com/en-us/library/system.drawing.printing.printersettings.aspx

爱编程的大叔 | 园豆:30273 (高人七级) | 2013-10-23 14:16

求教一下,有没有办法获得可用的所有打印机,包括本地安装的以及局域网内其他的打印机

支持(0) 反对(0) Memento | 园豆:126 (初学一级) | 2015-02-16 16:48
0

//获取所有打印机名称

foreach (string sPrint in PrinterSettings.InstalledPrinters)

   Console.WriteLine(sPrint);

}

皆大欢喜信受奉行 | 园豆:143 (初学一级) | 2018-08-14 12:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册