none
获取打印机状态 RRS feed

答案

  • 你好!

         需要调用API来检测,具体可以参考:

    http://www.cnblogs.com/xiaogelove/archive/2010/01/06/1640621.html

         希望对你有帮助!


    周雪峰
    2010年6月6日 5:03
    版主
  • 也可以直接使用WMI来获取:

     

    using System.Management;
    string query = string.Format("SELECT * from Win32_Printer ");
    var searcher = new ManagementObjectSearcher(query);
    var printers = searcher.Get();
    
    foreach(var printer in printers)
    {
     Console.WriteLine(printer.Properties["Name"].Value);
     foreach(var property in printer.Properties)
     {
      Console.WriteLine(string.Format("\t{0}: {1}", property.Name, property.Value));
     }
     Console.WriteLine();
    }
    如此可以得到许多信息,包括状态、联机、脱机以及错误,不知是否够用了,再进一步的话,可能就要和打印机的驱动交互了。

     


    Tech Blog: http://gildor.cnblogs.com
    2010年6月6日 8:33

全部回复

  • 你好!

         需要调用API来检测,具体可以参考:

    http://www.cnblogs.com/xiaogelove/archive/2010/01/06/1640621.html

         希望对你有帮助!


    周雪峰
    2010年6月6日 5:03
    版主
  • 也可以直接使用WMI来获取:

     

    using System.Management;
    string query = string.Format("SELECT * from Win32_Printer ");
    var searcher = new ManagementObjectSearcher(query);
    var printers = searcher.Get();
    
    foreach(var printer in printers)
    {
     Console.WriteLine(printer.Properties["Name"].Value);
     foreach(var property in printer.Properties)
     {
      Console.WriteLine(string.Format("\t{0}: {1}", property.Name, property.Value));
     }
     Console.WriteLine();
    }
    如此可以得到许多信息,包括状态、联机、脱机以及错误,不知是否够用了,再进一步的话,可能就要和打印机的驱动交互了。

     


    Tech Blog: http://gildor.cnblogs.com
    2010年6月6日 8:33