【问题标题】:Read printer pool to get number of pages being printed读取打印机池以获取正在打印的页数
【发布时间】:2011-03-29 02:13:55
【问题描述】:

我在教室实验室有一台网络打印机。我想记录每个学生打印了多少页。我想知道如何阅读 打印机池以获取学生打印时的页数。以下是我的想法:编写一个 Windows 服务来获取:

  1. 用户登录名
  2. 每次打印文档时打印的次数
  3. 将用户名+页数发送到远程数据库

我不知道的:

  1. 如何获取每次打印的页数

如果可能的话,我希望在 VB.NET 中完成这项工作。

谢谢。

【问题讨论】:

    标签: c# vb.net printing


    【解决方案1】:

    您可以使用 WMI 类 Win32_PrintJob 获取有关每个作业的信息。它有名为PagesPrintedTotalPages 的属性,希望能满足您的需求。它还具有其他可能相关的属性,例如 Status(如果您不想计算已删除或失败作业或类似作业中的页数)。

    这篇文章有关于从VB.Net调用这个类的信息:
    Interrogating your Printer Queries with WMI

    请记住添加对System.Management 的引用,因为默认情况下不会将其添加到新项目中。

    【讨论】:

    • @Azarsa 已经有一段时间了,所以我不记得了,但我认为它应该以同样的方式工作。只要安装了打印机驱动程序,我就会认为它与 WMI 类看起来是一样的。
    • 是的,您是对的,但是如果远程机器向打印机托管的本地计算机发送打印命令,那么远程机器上的 TotalPages 为零!我想我应该使用套接字,不是吗?两个系统都使用 WMI 类。
    • @Azarsa 可以使用WMI查询远程计算机,看这个页面:msdn.microsoft.com/en-us/library/aa389290(v=vs.85).aspx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多