C# 有关打印机的连接判断...随便看看
各位coder手下留情
/// <summary> /// 判断是否连接打印机 /// </summary> public bool CheckPrinter() { //取得默认打印机名 PrintDocument pdoc = new PrintDocument(); string printerName1 = pdoc.PrinterSettings.PrinterName; ManagementScope scope = new ManagementScope(@"\root\cimv2"); scope.Connect(); // Select Printers from WMI Object Collections ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer"); string printerName = ""; foreach (ManagementObject printer in searcher.Get()) { printerName = printer["Name"].ToString().ToLower(); ) { if (printer["WorkOffline"].ToString().ToLower().Equals("true")) { switch (XtraMessageBox.Show("默认打印机未连接或出错", "警告", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error)) { case DialogResult.Retry: CheckPrinter(); break; } return false; // printer is offline by user } else { // printer is not offline return true; } } } switch (XtraMessageBox.Show("默认打印机未连接或出错", "警告", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error)) { case DialogResult.Retry: CheckPrinter(); break; } return false; } /// <summary> /// 判断打印机状态,传Exception /// </summary> /// <param name="ex">Exception</param> public void ErrerPrint(Exception ex) { PrintQueue pq = LocalPrintServer.GetDefaultPrintQueue(); string PrintStaticText = ""; bool isPrintErrer = false; switch (pq.QueueStatus) { case PrintQueueStatus.Busy: PrintStaticText = "打印机正忙"; isPrintErrer = true; break; case PrintQueueStatus.DoorOpen: PrintStaticText = "打印机上的门已打开"; isPrintErrer = true; break; case PrintQueueStatus.Error: PrintStaticText = "由于错误情况,打印机无法打印。"; isPrintErrer = true; break; case PrintQueueStatus.IOActive: PrintStaticText = "打印机正在与打印服务器交换数据"; isPrintErrer = true; break; case PrintQueueStatus.Initializing: PrintStaticText = "打印机正在初始化"; isPrintErrer = true; break; case PrintQueueStatus.ManualFeed: PrintStaticText = "打印机正在等待用户将打印介质放入手动送纸盒"; isPrintErrer = true; break; case PrintQueueStatus.NoToner: PrintStaticText = "打印机墨粉用完"; isPrintErrer = true; break; case PrintQueueStatus.None: PrintStaticText = "未指定状态。"; isPrintErrer = true; break; case PrintQueueStatus.NotAvailable: PrintStaticText = "状态信息不可用"; isPrintErrer = true; break; case PrintQueueStatus.Offline: PrintStaticText = "打印机处于脱机状态。"; isPrintErrer = true; break; case PrintQueueStatus.OutOfMemory: PrintStaticText = "打印机无可用内存"; isPrintErrer = true; break; case PrintQueueStatus.OutputBinFull: PrintStaticText = "打印机的输出纸盒已满"; isPrintErrer = true; break; case PrintQueueStatus.PagePunt: PrintStaticText = "打印机不能打印当前页"; isPrintErrer = true; break; case PrintQueueStatus.PaperJam: PrintStaticText = "打印机卡纸"; isPrintErrer = true; break; case PrintQueueStatus.PaperOut: PrintStaticText = "打印机中没有或已用完当前打印作业所需的纸张类型"; isPrintErrer = true; break; case PrintQueueStatus.PaperProblem: PrintStaticText = "打印机中的纸张导致未指定的错误情况"; isPrintErrer = true; break; case PrintQueueStatus.Paused: PrintStaticText = "打印队列已暂停"; isPrintErrer = true; break; case PrintQueueStatus.PendingDeletion: PrintStaticText = "打印队列正在删除打印作业"; isPrintErrer = true; break; case PrintQueueStatus.PowerSave: PrintStaticText = "打印机处于节能模式"; isPrintErrer = true; break; case PrintQueueStatus.Printing: PrintStaticText = "设备正在打印"; isPrintErrer = true; break; case PrintQueueStatus.Processing: PrintStaticText = "设备正在执行某种工作,如果此设备是集打印机、传真机和扫描仪于一体的多功能设备,则不需要打印"; isPrintErrer = true; break; case PrintQueueStatus.ServerUnknown: PrintStaticText = "打印机处于错误状态"; isPrintErrer = true; break; case PrintQueueStatus.TonerLow: PrintStaticText = "打印机中只剩下少量墨粉"; isPrintErrer = true; break; case PrintQueueStatus.UserIntervention: PrintStaticText = "打印机要求通过用户操作来更正错误情况"; isPrintErrer = true; break; case PrintQueueStatus.Waiting: PrintStaticText = "打印机正在等待打印作业"; isPrintErrer = true; break; case PrintQueueStatus.WarmingUp: PrintStaticText = "打印机正在预热"; isPrintErrer = true; break; } if (isPrintErrer) { WriteLog.SetString(PrintStaticText); XtraMessageBox.Show(PrintStaticText, "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); } if (ex.Message == "The net printer is unavailable.") { XtraMessageBox.Show("网络打印机不可用", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); WriteLog.SetString(ex.Message); } else { WriteLog.SetException(ex); } }
C# 有关打印机的连接判断...随便看看的更多相关文章
- Android 网络连接判断与处理
Android网络连接判断与处理 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="and ...
- Android网络连接判断与处理
博客分类: Android 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android ...
- 打印机驱动冲突和端口异常:win10更新部分补丁后,打印机本地连接(连接打印机的主机)可以打印,其他共享网络中的电脑可以连接到打印机,但不能打印——解决方案
一.问题描述: 1.A(WIN10系统)表示连接打印机的电脑,P表示打印机(型号:惠普127M),B(WIN7系统)表示局域网中的电脑 2.A升级后部分补丁后,A可以使用打印机P打印文件,B显示可以连 ...
- android 网络连接判断
Android 网络判断类,用来判断网络状态 使用方法: (1)先初始化 //初始化网络状态检测类 NetworkStateManager.instance().init(this); (2)判断是否 ...
- Android网络连接判断与检测
转自: http://www.cnblogs.com/qingblog/archive/2012/07/19/2598983.html 本文主要内容: 1)判断是否有网络连接 2)判断WIFI网络是否 ...
- Java中使用Socket连接判断Inputstream结束,java tcp socket服务端,python tcp socket客户端
最近在试着用java写一个socket的服务器,用python写一个socket的客户端来完成二者之间的通信,但是发现存在一个问题,服务器方面就卡在读取inputsream的地方不动了,导致后面的代码 ...
- C# 打印机连接状态判断
原文:https://www.cnblogs.com/Old-Fish/p/6258118.html /// <summary> /// 判断是否连接打印机 /// </summar ...
- Win8 app判断网络连接状态
Win8 app判断网络连接状态 NetworkInformation.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged; ...
- Win10 64位连接LJM1005打印机局域网访问
除了网上常见的开Guest用户之类需要额外三个设置 (1)安装LJM1005驱动LJM1005_Full_Solution (2)设置打印机共享和安全中的everyone全部勾选(解决能看到打印机无法 ...
随机推荐
- java能不能自己写一个类叫java.lang.System/String正确答案
原文: http://www.wfuyu.com/php/22254.html 未做测试 ! 最近学习了下java类加载相干的知识.然后看到网上有1道面试题是 能不能自己写个类叫java.lang.S ...
- grunt安装与运行
用grunt前,需要先安装nodejs.因为grunt依赖于nodejs.nodejs的安装可以参照我的博客里头的nodejs的下载,安装与测试. 第一步:安装grunt-CLI 注意你的电脑要联 ...
- RequireJS 基础(一)
RequireJS由James Burke创建,他也是AMD规范的创始人. RequireJS会让你以不同于往常的方式去写JavaScript,你将不再使用script标签在HTML中引入JS文件,以 ...
- 写了好多次SSH现在对于框架还是有一定的基础了,但是对于框架下我们该如何进行操作呢???
首先,对于一个老手来说,我们最快捷的就是ctrl+c和ctrl+v,但是我们自己应该复制哪一些代码呢? 1.在我们导完包之后,我们需要写的就是web.xml,在其中,我们要有过滤器及映射和监听器. w ...
- npm install 出现UNABLE_TO_GET_ISSUER_CERT_LOCALLY
解决方式 As a workaround you can turn ssl checking off in your .npmrc 执行 npm config set strict-ssl false ...
- Tcc学习笔记(三) 使用举例
TCC的使用以使用第三方库为例子,例子包括:OpenGL , GMP以及SDL等. 1.TCC使用GLUT 去OpenGL下载http://www.opengl.org/resources/libra ...
- centos从日志文件查找关键字的日志并生成文件
grep "unset user wechat user_id:" app* | tee wechat_log
- jQuery的开始
一.下载 jQuery http://jquery.com/download/ 二.什么是jQuery: 1.jQuery 是一个 JavaScript 库. 2.jQuery 极大地简化了 Java ...
- RedHat 6.7 Enterprise x64环境下使用RHCS部署Oracle 11g R2双机双实例HA
环境 软硬件环境 硬件环境: 浪潮英信服务器NF570M3两台,华为OceanStor 18500存储一台,以太网交换机两台,光纤交换机两台. 软件环境: 操作系统:Redhat Enterpris ...
- EasyUI中Treegrid节点的删除
// 删除function removes() { var rows = ruletreegrid.treegrid('getSelections'); if (rows &&am ...