精华内容
下载资源
问答
  • C#查看打印机状态(缺纸)

    千次阅读 热门讨论 2018-04-18 11:25:51
    打印机有缺纸的指示灯,缺纸时windows的打印机状态也能表示是缺纸。 下面的代码能够取得该打印机的状态。 公司另外一台老的夏普打印机,缺纸时windows的打印机状态没有任何显示,也无法通过下面的代码取得...
    项目需要,使用了研科的T91型号热敏打印机。打印机有缺纸的指示灯,缺纸时windows的打印机状态也能表示是缺纸。


    下面的代码能够取得该打印机的状态。


    公司另外一台老的夏普打印机,缺纸时windows的打印机状态没有任何显示,也无法通过下面的代码取得打印机状态。


    注:代码是在网上查找组合起来的。






    前提:1. 在form上追加一个printdocument控件和一个按钮控件。


               2. 将对象打印机设置为默认打印机。






    1) 新建一个PrinterHelper类。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Threading.Tasks;
    
    
    namespace WindowsFormsApplication1
    {
     
        class PrinterHelper
        {
    
    
            [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
            private static extern bool OpenPrinter(string pPrinterName, out IntPtr hPrinter, IntPtr pDefault);
    
    
            [DllImport("winspool.drv", SetLastError = true)]
            private static extern bool ClosePrinter(IntPtr hPrinter);
    
    
            [DllImport("winspool.drv", SetLastError = true)]
            private static extern bool GetPrinter(IntPtr hPrinter,
                int dwLevel, IntPtr pPrinter, int cbBuf, out int pcbNeeded);
    
    
            [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
            public struct PRINTER_INFO_2
            {
                public string pServerName;
                public string pPrinterName;
                public string pShareName;
                public string pPortName;
                public string pDriverName;
                public string pComment;
                public string pLocation;
                public IntPtr pDevMode;
                public string pSepFile;
                public string pPrintProcessor;
                public string pDatatype;
                public string pParameters;
                public IntPtr pSecurityDescriptor;
                public uint Attributes;
                public uint Priority;
                public uint DefaultPriority;
                public uint StartTime;
                public uint UntilTime;
                public uint Status;
                public uint cJobs;
                public uint AveragePPM;
            }
    
    
    
    
            public static string GetPrinterStatus(string PrinterName)
            {
                int intValue = GetPrinterStatusInt(PrinterName);
                string strRet = string.Empty;
                switch (intValue)
                {
                    case 0:
                        strRet = "准备就绪(Ready)";
                        break;
                    case 0x00000200:
                        strRet = "忙(Busy)";
                        break;
                    case 0x00400000:
                        strRet = "被打开(Printer Door Open)";
                        break;
                    case 0x00000002:
                        strRet = "错误(Printer Error)";
                        break;
                    case 0x0008000:
                        strRet = "初始化(Initializing)";
                        break;
                    case 0x00000100:
                        strRet = "正在输入,输出(I/O Active)";
                        break;
                    case 0x00000020:
                        strRet = "手工送纸(Manual Feed)";
                        break;
                    case 0x00040000:
                        strRet = "无墨粉(No Toner)";
                        break;
                    case 0x00001000:
                        strRet = "不可用(Not Available)";
                        break;
                    case 0x00000080:
                        strRet = "脱机(Off Line)";
                        break;
                    case 0x00200000:
                        strRet = "内存溢出(Out of Memory)";
                        break;
                    case 0x00000800:
                        strRet = "输出口已满(Output Bin Full)";
                        break;
                    case 0x00080000:
                        strRet = "当前页无法打印(Page Punt)";
                        break;
                    case 0x00000008:
                        strRet = "塞纸(Paper Jam)";
                        break;
                    case 0x00000010:
                        strRet = "打印纸用完(Paper Out)";
                        break;
                    case 0x00000040:
                        strRet = "纸张问题(Page Problem)";
                        break;
                    case 0x00000001:
                        strRet = "暂停(Paused)";
                        break;
                    case 0x00000004:
                        strRet = "正在删除(Pending Deletion)";
                        break;
                    case 0x00000400:
                        strRet = "正在打印(Printing)";
                        break;
                    case 0x00004000:
                        strRet = "正在处理(Processing)";
                        break;
                    case 0x00020000:
                        strRet = "墨粉不足(Toner Low)";
                        break;
                    case 0x00100000:
                        strRet = "需要用户干预(User Intervention)";
                        break;
                    case 0x20000000:
                        strRet = "等待(Waiting)";
                        break;
                    case 0x00010000:
                        strRet = "热机中(Warming Up)";
                        break;
                    default:
                        strRet = "未知状态(Unknown Status)";
                        break;
                }
                return strRet;
            }
    
    
            internal static int GetPrinterStatusInt(string PrinterName)
            {
                int intRet = 0;
                IntPtr hPrinter;
    
    
                if (OpenPrinter(PrinterName, out hPrinter, IntPtr.Zero))
                {
                    int cbNeeded = 0;
                    bool bolRet = GetPrinter(hPrinter, 2, IntPtr.Zero, 0, out cbNeeded);
                    if (cbNeeded > 0)
                    {
                        IntPtr pAddr = Marshal.AllocHGlobal((int)cbNeeded);
                        bolRet = GetPrinter(hPrinter, 2, pAddr, cbNeeded, out cbNeeded);
                        if (bolRet)
                        {
                            PRINTER_INFO_2 Info2 = new PRINTER_INFO_2();
    
    
                            Info2 = (PRINTER_INFO_2)Marshal.PtrToStructure(pAddr, typeof(PRINTER_INFO_2));
    
    
                            intRet = System.Convert.ToInt32(Info2.Status);
                        }
                        Marshal.FreeHGlobal(pAddr);
                    }
                    ClosePrinter(hPrinter);
                }
    
    
                return intRet;
            }
    
    
    
    
        }
    }




    2) 在form的按钮click事件内弹出对话框表示打印机状态


    MessageBox.Show(PrinterHelper.GetPrinterStatus(printDocument1.PrinterSettings.PrinterName));



    如果这篇文章对你有帮助,赞一个~



    展开全文
  • Linux基础命令---lpstat查看打印机状态

    千次阅读 2019-03-29 08:34:27
    lpstat指令用来显示当前任务、打印机状态。如果没有参数,那么就显示打印队列。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora、openSUSE、SUSE。 [b]1、语法[/b] [b] lpstat [选项][/b] [b]2、...
    [b]lpstat[/b]
           lpstat指令用来显示当前任务、打印机的状态。如果没有参数,那么就显示打印队列。
           此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora、openSUSE、SUSE。

    [b]1、语法[/b]
          [b] lpstat  [选项][/b]

    [b]2、命令列表[/b]
           -E
                  使用加密模式
           -H
                  显示远程打印机的名字和端口
           -R
                  显示任务的顺序
           -U
                  设置别名
           -W
                  设置要显示哪个任务
           -a
                  显示允许打印的打印机队列
           -c
                  显示打印机类
           -d
                  显示默认打印机
           -h server[:port]
                  指定备用服务器
           -l 
                  显示打印机、类或作业的长列表。
           -o
                  显示指定打印机的队列
           -p
                  显示指定打印机,无论打印机是否激活
           -r
                  显示CUPS是否在运行
           -s
                  显示状态总和
           -t
                  显示所有的状态。等价于"-r", "-d", "-c","-v", "-a", "-p","-o"一起使用
           -u [user(s)]
                  显示由指定用户排队的打印作业列表。如果未指定用户,则列出当前用户排队的作业。
           -v [printer(s)]
                  显示打印机及其连接的设备。如果没有指定打印机,则列出所有打印机。

    [b]3、实例[/b]
    查看CUPS是否运行
           [root@localhost /]# [b]lpstat -r[/b]
           调度程序正在运行
           You have new mail in /var/spool/mail/root
           [root@localhost /]#  

    展开全文
  • PrinterStatus 调用一个自定义的打印机类库PrinterAPI,查看本机的打印机和打印机状态
  • 获取打印机状态Delphi

    热门讨论 2009-05-15 13:13:56
    用程序获取打印机状态 网络上的一些代码都不能成功 借鉴一下,查看API函数,一般是函数的参数使用不当造成 终于成功! 含源代码: Delphi6
  • TSC打印机调试工具

    2020-11-27 15:40:21
    TSC打印机调试工具,可以查看打印机状态,重置打印机。
  • ②右击状态栏上提示“有一个文件挂起”信息的打印机按钮,选择”查看现在正在打印什么“,在新弹出的窗口中点击”打印机“菜单,查看“暂停打印”选项前是否勾选了“√”;如果有,则再点击一下“暂停打印”选项,...

    解决方案

    ①win+r,命令框中输入services.msc,找到print spooler项,点击"启动“,并选择右击“属性”,设置为“自动”;

     

      

    ②右击状态栏上提示“有一个文件挂起”信息的打印机按钮,选择”查看现在正在打印什么“,在新弹出的窗口中点击”打印机“菜单,查看“暂停打印”选项前是否勾选了“√”;如果有,则再点击一下“暂停打印”选项,确保该选项前没有“√”;

     

    转载于:https://www.cnblogs.com/goalie/p/9409520.html

    展开全文
  • AIX打印机管理

    2007-06-11 15:32:47
    简单的打印机管理命令[@more@]qchk 查看打印命令 Ex:qchk -P name_printer 查看打印机状态qadm 管理打印机状态 Ex:qadm -U name_printer 启动打印机 Ex:qadm ...
    简单的打印机管理命令[@more@]

    qchk 查看打印命令
    Ex:qchk -P name_printer 查看打印机状态


    qadm 管理打印机状态
    Ex:qadm -U name_printer 启动打印机
    Ex:qadm -D name_printer 停止打印机


    qcan 管理打印队列任务
    Ex:qcan -XP name_printer 取消该打印机上的所有任务
    Ex:qcan -x job_no 取消该打印任务

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/443022/viewspace-918509/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/443022/viewspace-918509/

    展开全文
  • HP打印机查看耗材余量

    千次阅读 2012-08-15 11:26:42
    哪些惠普激光打印机可以查看耗材剩余量?怎样查看? 2008-04-11 14:52 注 :惠普激光打印机必须在就绪状态下才能够 打印耗材状态打印机型号 ...
  • 如何查看计算机所连接的打印机 ...1、点击开始——设备和打印机——找到你所要打印的打印机,灰色是脱机状态,清晰是连接状态,还可以双击那个打印机,点击“查看正在打印的内容”显示脱机,说明是脱机状态,没有显...
  • 打印机故障我们一般先查看打印机状态一般分为3种: 1.准备就绪这种情况说明打印机没有问题。 2.脱机状态这种状态说明打印机与电脑连接有问题我们需要注意连接线 3无法连接打印机(主要分为三种情况) 1)guest...
  • 首先点击控制面板 弹出“控制面板”窗口,查看方式切换到:类别,... ... 添加完凭证后,让我们回到“设备和打印机”管理界面去看一下刚才添加好凭证的打印机状态。...查看打印机状态,已为就绪状态,已可正常打印文档
  • 用于打印机任务的仿真:一段时间内,打印任务和打印机状态的模拟 构造三个对象: (1)打印机:实现了打印机的打印速度、剩余打印...3)查看打印机状态;4)若打印机闲置,队列有任务的化出列进行打印; 5)打印机有任
  • 网络打印机拒绝访问,无法连接处理方法汇总 2011-05-17 象王 阅141503转342 转藏到我的图书馆 ...我们工作组内的其他电脑都可以正常使用共享的打印机进行打印,我的电脑却在某...查看打印机状态为:拒绝访问,...
  • 公司的一台HP2015N打印机出现故障,表现为打印机离线,不能接收打印任务,查看打印机状态中的端口设置,提示端口无效。 在打印机上长按绿色键打印出打印机配置,其中IP地址为:Configuring。使用HP网络打印机设置...
  • 操作方法:当机器处于就绪状态时,按 5-9 秒打印机面板上的执行按钮,等待打印机面板上中间数据灯开始闪烁时松手。打印机会自动打印出配置信息页,可从配置页上得知当前打印机 IP 地址。 连接网络打印机: 1 添加...
  • 1、停止打印服务,按Win+R键打开运行对话框,然后输入“services.msc ” 并按确认; ... 3、按Win+R键打开运行对话框,然后输入“Spool ” 并按...4.重启print spooler服务,然后返回控制面板查看打印机状态即可! ...
  • 打印机管理BrAdmin.rar

    2020-08-30 16:07:32
    这款软件可以方便的管理网络上的兄弟打印机,并可以查看打印机的工作状态。请在安装此款本前卸载以前的版本。新版本加入了保存与输出网络设置的功能,兼容部分其他品牌打印机
  • 单击服务和应用程序,右边的配置服务或应用程序选择分配给文件服务器的存储磁盘,GDNS自动生成A记录查看修改后台打印文件夹修改打印机服务器属性返回故障转移集群查看状态正常如下图主节点为PRT-02手动切换主节点...
  • 打印文档时,进程条不前进,查看
  • 查看连接状态3.设置 1.获取IP地址 首先问管理员获取打印机的IP和端口号 如:192.168.123.8:9100 2.查看连接状态 win+r 打开运行窗口,输入cmd,打开命令行提示符窗口 ping 192.168.123.8 验证是否可以ping通,可以...
  • lpq命令用于显示打印队列中的打印任务的状态信息及其所包含的打印任务 ,如果使用该命令时没有指定打印机或类,则将显示默认目标上排队的作业。 语法格式:lpq [参数] 常用参数: -E 强制使用加密方式与服务器...
  • Win7 共享打印机脱机解决

    千次阅读 2012-03-13 09:13:09
    查看打印机队列,有打印内容。 打印测试页没有反应 本机网络连接正常 打印机和打印服务器(PC机)连接正常,打印服务器能正常打印 打印机状态显示为脱机 原因: 登录打印机凭证丢失。 解决: 点开始菜单-〉...
  • 打印测试页没有反应本机网络连接正常打印机和打印服务器(PC机)连接正常,打印服务器能正常打印打印机状态显示为脱机原因:登录打印机凭证丢操作系统:win7现象:使用共享打印机器打印文档时,发现打印机没有反应。...
  •  查看打印机队列,有打印内容; 打印测试页没有反应; 本机网络连接正常; 打印机和打印服务器(PC机)连接正常,打印服务器能正常打印; 打印机状态显示为脱机。故障原因: 登录打印机凭证丢失。解决方法: ...
  • 轻松解决Win7(8)系统共享打印机

    千次阅读 2017-03-16 10:57:48
    WIN7、WIN8系统,登录电脑连接局域网上共享的打印机,刚连接上正常打印,但闲置一段时间后打印时,打印机状态就显示服务器脱机,重启电脑后重新连接才正常。 1、在网络连接正常的情况下查看打印机是否脱机,点击...
  • 出错状态提示 ;出错状态提示 ;出错状态提示 ;故障诊断方法;故障诊断方法;故障诊断方法;故障诊断方法;...处理方法 1查看打印机所接220V交流电源是否正常 2测量电源板分别在空载和有负载时输出端电压是否正常SK-8

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 270
精华内容 108
关键字:

查看打印机状态