如何创建自己的XP打印机驱动程序

CJ7*_*CJ7 12 printing windows-xp driver

我如何创建自己的XP打印机驱动程序,它将执行以下操作:

  • 打印到文件(可能是XPS格式)
  • 将此文件放入受密码保护的ZIP文件中
  • 将zip文件通过电子邮件发送到配置的电子邮件

Ole*_*leg 18

你需要的不是打印机驱动程序.一个名为Print Monitor.它是一个DLL,将在Spooler.exe进程中加载​​.DLL在初始化阶段为Spooler提供端口的逻辑名称,如LPT1:,FILE:,SPSPort:等.使用打印机驱动程序准备的optput必须以任何方式发送到目标设备.这项工作打印监视器,如"标准TCP/IP端口"或"本地端口".

要编写打印机监视器,您需要下载并安装Windows驱动程序工具包(WDK或前一段时间DDK,请参阅http://www.microsoft.com/whdc/devtools/WDK/default.mspx).有关编写打印机监视器的更多信息,请参见http://msdn.microsoft.com/en-us/library/ff563806(v=VS.85).aspx.Print Monitor是一个带有一些导出功能的DLL(参见http://msdn.microsoft.com/en-us/library/ff549405(v=VS.85).aspx).我建议你先修改本地监视器示例LocalMon,然后在安装WDK后找到完整的源代码(请参阅http://msdn.microsoft.com/en-us/library/ff556478(v=VS.85).aspx).

编写打印机监视器最实际的问题是编写一个真正的多线程DLL.您必须非常小心,理解并使用EnterCriticalSection所有功能.要调试打印机监视器,应将Visual Studio Debugger连接到进程假脱机程序.其余与编写运行的标准Windows Win32/Win64 DLL相同.

更新:再说一句小话.如果您不希望打印机驱动程序对发送到打印机的数据执行任何操作,则可以使用通用打印机驱动程序.您可以在"Generic"制造商的名称为"Generic/Text Only"的打印机下找到它.检查您拥有的一些驱动程序设置(如CR LF设置)

  • @Attaque:当前版本的WDK可以从[这里]下载(http://msdn.microsoft.com/en-US/windows/hardware/gg454513).Print Monitor的文档目前[此处](http://msdn.microsoft.com/en-us/library/windows/hardware/ff563806(v = vs.85).aspx).WDK中LOCALMON示例的引用是[here](http://msdn.microsoft.com/en-us/library/windows/hardware/ff562048(v = vs.85).aspx).几年之后,链接可以被打破.我可以在互联网上搜索我在答案中使用的术语(如"打印机监视器"或"端口监视器"). (2认同)