`
zu14
  • 浏览: 458887 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

C#遍历系统所安装的打印机,使用WMI方式获取打印机的所有属性

阅读更多

有网友发消息来询问,C#如何遍历系统已经安装的所有打印机,并获得每个打印机的相关信息,如:端口,名称等等

C#里面,虽然在 System.Drawing.Printing 这个namespace下,提供了一些对系统打印机的访问功能,但是,说实话是太弱了,对获取打印机的相关属性基本是无能为力的。

C#里面获取打印机的详细信息,常用的用2种方式:

  1. 使用 Windows API
  2. 使用 WMI

我这里使用的是WMI的方式,因为此方式,是采用了类SQL的方法,将windows的WMI管理信息,作为一种数据库的形态来提供的,使用起来比较顺手

.NET 里面对WMI的使用,是放在 System.Management 这个空间下的,要使用的话,需要先添加对 System.Management.dll 引用

具体代码如下:

<script type="text/javascript"><!-- google_ad_client = "pub-5834986413902221"; /* 728x90 */ google_ad_slot = "1368486102"; google_ad_width = 728; google_ad_height = 90; //--> </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
string wmiSQL = "SELECT * FROM Win32_Printer";
ManagementObjectCollection printers = new ManagementObjectSearcher(wmiSQL).Get();

foreach (ManagementObject printer in printers)
{
    PropertyDataCollection.PropertyDataEnumerator pde = printer.Properties.GetEnumerator();

    while (pde.MoveNext())
    {
        MessageBox.Show(pde.Current.Name + " : " + pde.Current.Value);
        //显示的是 属性名 : 属性值 的形式
    }
}
应该是一目了然了吧,嘿嘿
分享到:
评论
1 楼 hz_qiuyuanxin 2012-10-23  
楼主,那如何实时监控打印机的状态呢?

相关推荐

    C#实现获取打印机状态

    在IT行业中,C#是一种...总结来说,C#通过调用API获取打印机状态涉及了对操作系统API的理解、WMI的使用以及对象遍历和属性读取。掌握这个技能可以帮助开发者更好地与硬件设备进行交互,提升应用的功能性和用户体验。

    获取计算机上面所有的打印机列表并默认选中默认打印机

    在Windows操作系统中,获取计算机上所有打印机的列表以及设置默认打印机是系统管理和自动化脚本编写中的常见任务。这个过程涉及到Windows API(应用程序接口)的调用,通常通过编程语言如C++、C#或VB.NET来实现。...

    C#打印,以及打印之前测试打印机是否已准备好.

    这里通过`GetInstances()`方法获取了一个包含所有安装在系统上的打印机的集合。每台打印机都被表示为一个`ManagementObject`对象。 #### 1.2 获取并解析打印机状态 接下来,代码遍历这些`ManagementObject`对象,...

    判断是否连接打印机

    通过WMI查询所有安装在计算机上的打印机。这里使用了`Win32_Printer`类来获取所有打印机的信息。 ```csharp ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer"); `...

    C#中用WMI获取服务器信息-A.doc

    在C#编程中,Windows Management Instrumentation(WMI)是一个强大的工具,用于管理和监控Windows操作系统以及安装在其上的应用程序和服务。WMI是Microsoft的管理规范(WBEM)的实现,允许开发者通过标准的接口来...

    C#操作windowns内置api查询属性

    通过以上步骤,您可以成功地使用C#语言查询并获取Windows系统中安装的打印机的相关属性信息。这种方法不仅适用于开发桌面应用程序,也适用于需要监控和管理网络中多台计算机打印状态的企业级应用程序。

    导出本地打印机端口,IP 地址,Driver 信息

    本主题将深入探讨如何使用C#编程语言和Windows Management Instrumentation (WMI)技术来导出本地打印机的相关信息,包括端口、IP地址和Driver信息,并将这些数据整理成Excel格式。 首先,我们需要了解WMI是什么。...

    C#使用控制台列出当前所有可用的打印机列表

    在C#编程中,有时我们需要获取并操作计算机的硬件设备,比如列出当前系统中的所有可用打印机。本篇文章将详细介绍如何使用C#通过控制台来实现这一功能,这涉及到C#与Windows Management Instrumentation (WMI) 的...

    C#系统硬件设备管理(监视,启用,禁用)源代码

    通常,这需要使用P/Invoke(Platform Invoke)技术来调用操作系统级别的函数,例如`CreateFile`、`DeviceIoControl`等,以获取设备信息或执行控制操作。 2. **ManagementObjectSearcher和ManagementClass**:这两个...

    MSDN WMI Reference.pdf

    WMI任务部分则深入到具体的应用场景,例如账户和域管理、计算机硬件、软件、日期和时间、桌面管理、磁盘和文件系统、事件日志、文件和文件夹、网络、操作系统、性能监控、打印机和打印任务、进程、注册表和计划任务...

    C#版USB通信编程(接收和发送数据)

    在C#中,可以通过遍历`Win32_DiskDrive` WMI类来获取USB驱动器信息,或者使用`ManagementObjectSearcher`查询`Win32_USBController`类获取USB控制器信息。下面是一个简单的例子: ```csharp using System; using ...

    获取局域网内所有的域和工作组(4KB)

    以下是一个简化的C#代码示例,演示如何使用WMI获取域: ```csharp using System; using System.Collections.Generic; using System.Management; public static void GetNetworkDomains() { string query = ...

    远程控制打印任务,远程控制电脑

    C#可以通过多种方式实现远程控制,例如使用WMI(Windows Management Instrumentation)或者P/Invoke调用Windows API。WMI允许程序查询和更改操作系统状态,包括远程计算机。通过创建ManagementObjectSearcher和...

    WordPrint.zip

    这可能涉及到Windows Management Instrumentation (WMI) 或者PrinterSettings类来获取和设置打印机信息。用户界面应该友好地展示打印机列表,并保存用户的首选项以便下次使用。 综上所述,“WordPrint.zip”项目...

    USB状态监视

    1. **枚举USB设备**:通过遍历USB设备集合,获取所有连接的USB设备的详细信息。 2. **识别HID设备**:检查每个设备的设备描述符,确定是否为HID设备。 3. **打开设备**:获取设备的句柄,为后续的读写操作做好准备。...

    获取远程机器共享目录的物理路径的代码

    在文件中提到,通过WMI可以获取远程机器上的共享目录的物理路径。其基本步骤包括: - 创建WbemScripting.SWbemLocator对象。 - 连接到远程机器的WMI服务。 - 执行查询,选出指定名称的共享目录。 - 遍历查询结果并...

Global site tag (gtag.js) - Google Analytics