怎么判断网络打印机缺纸?????
也可以判断为打印机停用,,。我只要打印机没有打印的时候,就给出一个提示????请问怎么来实现哦???

解决方案 »

  1.   

    调用PrintDocument.Print时,可能会出异常,捕获就可以了
      

  2.   

    InvalidPrinterException
    表示将抛出的异常(如果你用无效的设置来访问一台打印机)。捕获一下 
      

  3.   


    这么简单?不会吧.打印时,将打印的内容传送到打印机的缓存后,是不会抛出异常.即使是打印机缺纸也不会中止这一过程.应该从打印机的API入手..个人感觉.....
      

  4.   

    wmi或
    snmp协议取打印机状态
      

  5.   

    没有特别通用的方法。
    ManagementObjectSearcher searcher = new
        ManagementObjectSearcher("SELECT * FROM Win32_Printer");
    ManagementObjectCollection collection = searcher.Get();
    foreach (ManagementObject printer in collection)
    {
        if (printer["Name"].ToString() == printerName)
        {
            if (printer["WorkOffline"].ToString().ToLower().Equals("true")) // This code is working
            {
                memoPrintDetail.AppendText("Status : Offline\n");// This code is working
                return;
            }
            else
            {
                memoPrintDetail.AppendText("Status : Online\n");// This code is working
            }                    
            MessageBox.Show(printer["ExtendedDetectedErrorState"].ToString()); // Always show "0" value
            MessageBox.Show(printer["DetectedErrorState"].ToString()); // Always show "0" value
        }
    }
    还有类似的方法如p invoke win32 平台函数等,这对有些打印机有效。在揽项目时这必须类明确标注为特殊功能,你很可能得直接与打印机交流,而不是调用windows通用库。销售经理:我们的工程师都是高水平的...这是小kiss啦...
    程序员:我靠,又得加班查资料了。
    总经理:我们的销售经理就是牛。(翻过都来对程序员)你们要增强专业技能...,每年可是有好多应届毕业生找不到工作...
      

  6.   

    看看这个例子吧,或许对你有所帮助!
    http://blog.csdn.net/lijipan/archive/2005/04/18/352678.aspx