C#获取本机连接的打印机属性
注意:这里取到的信息是本机连接上,并且装过驱动的打印机信息,也就是在 开始-----打印机和传真 中列出的所有打印机属性。而不是随便将一个打印机的数据线连接到电脑上的情况。另外,如果本机连接的一个能够使用的打印机,某一天去掉数据线后,他仍然在 开始-----打印机和传真 中有图标时,仍然可以获取到信息,而且打印机状态是“空闲”。
界面很简单,一个comboBox,一个textBox
首先在引用中需要引入System.Management,还要using System.Management;
获取当前电脑识别的打印机名
foreach (string iprt in System.Drawing.Printing.PrinterSettings.InstalledPrinters) this.comboBox1.Items.Add(iprt);
获取打印机的所有属性:
PrinterStatus ret = 0; string path = @"win32_printer.DeviceId='" + @comboBox1.Text(上面取到的打印机名) + "'"; ManagementObject printer = new ManagementObject(path); printer.Get(); PropertyDataCollection.PropertyDataEnumerator pde = printer.Properties.GetEnumerator(); while (pde.MoveNext()) { strRow += pde.Current.Name + " : " + pde.Current.Value + "/r/n"; //MessageBox.Show(pde.Current.Name + " : " + pde.Current.Value); //显示的是 属性名 : 属性值 的形式 } textBox1.Text = strRow;
属性如下:
Attributes : 2584
Availability :
AvailableJobSheets :
AveragePagesPerMinute : 0
Capabilities : System.UInt16[]
CapabilityDescriptions : System.String[]
Caption : //print/Canon MF3200 Series
CharSetsSupported :
Comment :
ConfigManagerErrorCode :
ConfigManagerUserConfig :
CreationClassName : Win32_Printer
CurrentCapabilities :
CurrentCharSet :
CurrentLanguage :
CurrentMimeType :
CurrentNaturalLanguage :
CurrentPaperType :
Default : False
DefaultCapabilities :
DefaultCopies :
DefaultLanguage :
DefaultMimeType :
DefaultNumberUp :
DefaultPaperType :
DefaultPriority : 0
Description :
DetectedErrorState : 0
DeviceID : //print/Canon MF3200 Series
Direct : False
DoCompleteFirst : True
DriverName : Canon MF3200 Series
EnableBIDI : True
EnableDevQueryPrint : False
ErrorCleared :
ErrorDescription :
ErrorInformation :
ExtendedDetectedErrorState : 0
ExtendedPrinterStatus : 2
Hidden : False
HorizontalResolution : 600
InstallDate :
JobCountSinceLastReset : 0 //当前任务数
KeepPrintedJobs : False
LanguagesSupported :
LastErrorCode :
Local : False
Location :
MarkingTechnology :
MaxCopies :
MaxNumberUp :
MaxSizeSupported :
MimeTypesSupported :
Name : //print/Canon MF3200 Series
NaturalLanguagesSupported :
Network : True
PaperSizesSupported : System.UInt16[]
PaperTypesAvailable :
Parameters :
PNPDeviceID :
PortName : USB001
PowerManagementCapabilities :
PowerManagementSupported :
PrinterPaperNames : System.String[]
PrinterState : 0 //打印机状态
PrinterStatus : 3
PrintJobDataType : RAW
PrintProcessor : WinPrint
Priority : 1
Published : False
Queued : False
RawOnly : False
SeparatorFile :
ServerName : //print
Shared : True
ShareName : CanonMF3
SpoolEnabled : True
StartTime :
Status : Unknown
StatusInfo :
SystemCreationClassName : Win32_ComputerSystem
SystemName : //print
TimeOfLastReset :
UntilTime :
VerticalResolution : 600
WorkOffline : False //是否离线
其中PrinterState的对应关系如下:
enum PrinterStatus { 其他状态 = 1, 未知, 空闲, 正在打印, 预热, 停止打印, 打印中, 离线 }
/// <summary> /// 打印机属性转换 /// </summary> /// <param name="PrinterDevice">打印机名(DeviceID)</param> /// <param name="iCount">当前任务数</param> /// <returns>打印机状态名字</returns> private PrinterStatus GetPrinterStat(string PrinterDevice,ref int iCount) { PrinterStatus ret = 0; string path = @"win32_printer.DeviceId='" + PrinterDevice + "'"; ManagementObject printer = new ManagementObject(path); printer.Get(); ret = (PrinterStatus)Convert.ToInt32(printer.Properties["PrinterStatus"].Value); iCount = Convert.ToInt32(printer.Properties["JobCountSinceLastReset"].Value); return ret; }
C#获取本机连接的打印机属性相关推荐
- 获取本机连接的wifi名
/*** 获取本机连接的wifi名** @return 本机连接的wifi名*/ - (NSString*)currentSSID{NSString *ssid = @"";NSA ...
- java windows wifi密码_java 获取本机连接过的所有WiFI密码
windows,cmd中可以通过命令行输入指令: netsh wlan show profiles 来获取连接过的WiFi名: 然后可以输入命令:获取WiFi名为 哦 的个密码 netsh wlan ...
- java 获取本机连接过的所有WiFI密码
CMD查询WiFi相关命令 netsh wlan show profiles windows,cmd中可以通过命令行输入指令: netsh wlan show profiles 来获取连接过的WiFi ...
- Java获取本机连接过的所有WiFI密码并且以TXT文本输出文件,javaee开发技术与案例教程
运行效果: WIFI信息会在控制台打印出来 自动打开生成WIFI信息的TXT文本 原理: 本教程原理就是用Java调用cmd命令获取WIFI信息,然后使用BufferedReader来读取内容. 使用 ...
- C# 获取本机连接的所有 串口设备名称 与 串口号
代码: class Program{static void Main(string[] args){GetComList();}private static void GetComList(){try ...
- 打印技术之获取及设置系统默认打印机
http://www.cnblogs.com/menlsh/p/4189126.html 本文主要介绍如何获取以及设置系统的默认打印机. 1.获取系统中的所有打印机 获取系统中的所有打印机可以使用En ...
- 【打印技术01】获取及设置系统默认打印机
本文主要介绍如何获取以及设置系统的默认打印机. 1.获取系统中的所有打印机 获取系统中的所有打印机可以使用EnumPrinters()函数,该函数可以枚举全部的本地.网络打印机信息.其函数原型为: 1 ...
- 【VC++技术杂谈002】打印技术之获取及设置系统默认打印机
本文主要介绍如何获取以及设置系统的默认打印机. 1.获取系统中的所有打印机 获取系统中的所有打印机可以使用EnumPrinters()函数,该函数可以枚举全部的本地.网络打印机信息.其函数原型为: 1 ...
- Android手机连接蓝牙打印机连接不上的问题
目前碰到的情况(虽然可能是小情况,但是在解决的时候还是很费时间的): 问题描述:用Android机连接蓝牙打印机,发现华为P7可以连接,而其余的手机都连接失败,找了一上午资料也没解决这个问题. 接着我 ...
最新文章
- 用 JMeter 测量性能--测试您的 DB2 数据库
- 技术走向管理一些思考
- 剑指offer--二维数组的查找
- python写一个笔记软件_科学网—python学习笔记(1)——创建应用 - 高雪峰的博文...
- 车载娱乐系统 AppSupport
- 8、二叉树的下一个节点(Python)
- Word中插入的Excle打开后闪退如何解决? - Office2019
- 用神经网络实现手写数字识别
- 有趣的代码,让生活更加愉快(抖音网红代码)
- 内网穿透的几种方式-免费与收费(钉钉、Frp、花生壳、nat123)
- 如何快速理清大型项目业务逻辑
- WIN7 SP1 0x8007000D错误
- MBR10200FAC-ASEMI肖特基二极管MBR10200FAC
- 停车场寻车难?蓝牙5.1提供的新思路
- 微信域名防封系统,APP下载链接域名怎么避免在微信中被封
- 抖音落地页一键复制微信号跳转微信的方法
- 【Python】如何判断丑数
- 关于有限元应力结果精度的几点讨论
- 从内存角度深入看结构体(window/linux)大小
- 汽车之家联手网易云音乐,打造“车友音乐季”