当前位置:  开发笔记 > 编程语言 > 正文

如何在.NET中获取打印机信息?

如何解决《如何在.NET中获取打印机信息?》经验,为你挑选了3个好方法。

在标准PrintDialog中,有四个与选定打印机关联的值:状态,类型,位置和注释.

如果我知道打印机的名称,我怎样才能在C#2.0中获得这些值?



1> Panos..:

正如dowski建议的那样,您可以使用WMI来获取打印机属性.以下代码显示给定打印机名称的所有属性.其中包括:PrinterStatus,Comment,Location,DriverName,PortName等.

using System.Management;

...

string printerName = "YourPrinterName";
string query = string.Format("SELECT * from Win32_Printer WHERE Name LIKE '%{0}'", printerName);

using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
using (ManagementObjectCollection coll = searcher.Get())
{
    try
    {
        foreach (ManagementObject printer in coll)
        {
            foreach (PropertyData property in printer.Properties)
            {
                Console.WriteLine(string.Format("{0}: {1}", property.Name, property.Value));
            }
        }
    }
    catch (ManagementException ex)
    {
        Console.WriteLine(ex.Message);
    }
}


这很有效,我能够找到并阅读我需要的所有属性.谢谢!
2是空闲的.请参阅PrinterStatus:http://msdn.microsoft.com/en-us/library/windows/desktop/aa394363(v = vs.85).aspx
需要添加“ System.Management”参考

2> Powerlord..:

应该工作.

using System.Drawing.Printing;

...

PrinterSettings ps = new PrinterSettings();
ps.PrinterName = "The printer name"; // Load the appropriate printer's setting

之后,可以读取PrinterSettings 的各种属性.

请注意,ps.isValid()可以查看打印机是否确实存在.

编辑:另外一条评论.Microsoft建议您使用PrintDocument并修改其PrinterSettings,而不是直接创建PrinterSettings.



3> John Sheehan..:

看看PrinterSettings.InstalledPrinters

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有