注意:这里取到的信息是本机连接上,并且装过驱动的打印机信息,也就是在 开始-----打印机和传真 中列出的所有打印机属性。而不是随便将一个打印机的数据线连接到电脑上的情况。另外,如果本机连接的一个能够使用的打印机,某一天去掉数据线后,他仍然在 开始-----打印机和传真 中有图标时,仍然可以获取到信息,而且打印机状态是“空闲”。

界面很简单,一个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#获取本机连接的打印机属性相关推荐

  1. 获取本机连接的wifi名

    /*** 获取本机连接的wifi名** @return 本机连接的wifi名*/ - (NSString*)currentSSID{NSString *ssid = @"";NSA ...

  2. java windows wifi密码_java 获取本机连接过的所有WiFI密码

    windows,cmd中可以通过命令行输入指令: netsh wlan show profiles 来获取连接过的WiFi名: 然后可以输入命令:获取WiFi名为 哦 的个密码 netsh wlan ...

  3. java 获取本机连接过的所有WiFI密码

    CMD查询WiFi相关命令 netsh wlan show profiles windows,cmd中可以通过命令行输入指令: netsh wlan show profiles 来获取连接过的WiFi ...

  4. Java获取本机连接过的所有WiFI密码并且以TXT文本输出文件,javaee开发技术与案例教程

    运行效果: WIFI信息会在控制台打印出来 自动打开生成WIFI信息的TXT文本 原理: 本教程原理就是用Java调用cmd命令获取WIFI信息,然后使用BufferedReader来读取内容. 使用 ...

  5. C# 获取本机连接的所有 串口设备名称 与 串口号

    代码: class Program{static void Main(string[] args){GetComList();}private static void GetComList(){try ...

  6. 打印技术之获取及设置系统默认打印机

    http://www.cnblogs.com/menlsh/p/4189126.html 本文主要介绍如何获取以及设置系统的默认打印机. 1.获取系统中的所有打印机 获取系统中的所有打印机可以使用En ...

  7. 【打印技术01】获取及设置系统默认打印机

    本文主要介绍如何获取以及设置系统的默认打印机. 1.获取系统中的所有打印机 获取系统中的所有打印机可以使用EnumPrinters()函数,该函数可以枚举全部的本地.网络打印机信息.其函数原型为: 1 ...

  8. 【VC++技术杂谈002】打印技术之获取及设置系统默认打印机

    本文主要介绍如何获取以及设置系统的默认打印机. 1.获取系统中的所有打印机 获取系统中的所有打印机可以使用EnumPrinters()函数,该函数可以枚举全部的本地.网络打印机信息.其函数原型为: 1 ...

  9. Android手机连接蓝牙打印机连接不上的问题

    目前碰到的情况(虽然可能是小情况,但是在解决的时候还是很费时间的): 问题描述:用Android机连接蓝牙打印机,发现华为P7可以连接,而其余的手机都连接失败,找了一上午资料也没解决这个问题. 接着我 ...

最新文章

  1. 用 JMeter 测量性能--测试您的 DB2 数据库
  2. 技术走向管理一些思考
  3. 剑指offer--二维数组的查找
  4. python写一个笔记软件_科学网—python学习笔记(1)——创建应用 - 高雪峰的博文...
  5. 车载娱乐系统 AppSupport
  6. 8、二叉树的下一个节点(Python)
  7. Word中插入的Excle打开后闪退如何解决? - Office2019
  8. 用神经网络实现手写数字识别
  9. 有趣的代码,让生活更加愉快(抖音网红代码)
  10. 内网穿透的几种方式-免费与收费(钉钉、Frp、花生壳、nat123)
  11. 如何快速理清大型项目业务逻辑
  12. WIN7 SP1 0x8007000D错误
  13. MBR10200FAC-ASEMI肖特基二极管MBR10200FAC
  14. 停车场寻车难?蓝牙5.1提供的新思路
  15. 微信域名防封系统,APP下载链接域名怎么避免在微信中被封
  16. 抖音落地页一键复制微信号跳转微信的方法
  17. 【Python】如何判断丑数
  18. 关于有限元应力结果精度的几点讨论
  19. 从内存角度深入看结构体(window/linux)大小
  20. 汽车之家联手网易云音乐,打造“车友音乐季”

热门文章

  1. 股票交易软件接口的程序结构是什么?
  2. Linux连接不上Xshell?
  3. SQL server 2008R2安装错误:试图执行未经授权的操作
  4. Ubuntu中常见的特殊符号
  5. 一张图分出你是用左脑还是右脑
  6. DASCTF x SU 春季挑战赛
  7. TeamViewer 画面卡顿 请求延迟 反应慢
  8. c语言的null和0
  9. mq的基本介绍和基本用法
  10. 【选择结构】收集瓶盖赢大奖