【发布时间】:2012-06-08 17:17:02
【问题描述】:
我是 Windows 开发的新手,我正在尝试编写用户模式 Windows(XP、Vista 和 7)虚拟打印机驱动程序。我的目标是拦截第三方应用程序发送到硬件打印机的输出,并在输出结束时向该输出添加一些额外的数据(文本+图形)。然后发送最终的有效载荷以由硬件打印机打印。请注意,我的数据不会添加到机器的每次打印输出中,而只会添加到特定的第三方应用程序中。
我想在打印输出转换为任何页面描述语言 (PDL) 之前将其添加到打印输出中。我可以这样做吗?我是否能够以正确的格式在输出末尾添加我的额外数据?如果是,那么我需要编写什么样的驱动程序以及layer of the architecture 的位置?
有没有比编写用户模式打印机驱动程序更好的方法来做同样的事情?
最后,有没有示例代码、在线博客或书籍可以帮助我解决这个问题?
【问题讨论】:
-
您打算如何识别打印应用程序?
-
由于我打算编写打印机驱动程序,因此它将作为应用程序选择打印的选项之一出现。因此,当打印请求来自我的打印机驱动程序时,我会假设它来自该特定应用程序本身。
-
我认为您不需要驱动程序。只需使用随 WDK 提供的标准 Postscript 驱动程序,添加 .PPD 和 .INF 文件为其命名并指定特征,然后将您的代码放入端口监视器中。端口监视器比打印驱动程序更容易构建和维护。
-
@CareyGregory:非常感谢凯里!实际上,我正在探索为我的目的使用端口监视器的选项。您可以添加您的评论作为答案吗?此外,我正在尝试使用this link 在 Windows 7 上安装 WDK 示例端口监视器(localmon)。但我不断收到此错误:“复制文件 ddklocalmon.dll 时发生错误。无法将文件复制到目标文件夹。”如果这是权限问题,那么我不确定如何以管理员身份执行此操作。你能帮忙吗?
标签: windows device-driver postscript wdk printers