ciggar
驱动牛犊
驱动牛犊
  • 注册日期2004-03-01
  • 最后登录2010-06-02
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望48点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1428回复:3

讨论一下监控打印的问题

楼主#
更多 发布于:2004-03-15 15:33
最近帮一个哥们儿做监控软件,需要监控打印机的使用情况如何时添加打印机、打印文件时间、页数、文件名等。。。
考虑了许久想有两种方法:
1.编写打印monitor这样的话就可以截获或有的addprintjob等等之类的调用,里面有打印文件名的信息。不足的是到现在还没发现怎么截到打印的页数,而且对于已有language monitor的打印机,是不是还能添加monitor?(language monitor是不是分层的?)
2.通过hook spoolsv程序中的api调用(addjob,等等)来获取打印信息,但还是不太清楚应该hook那个dll中的api
其实还有一种方法,就是用程序不停的枚举spool中的打印任务,这样太笨了,也太消耗系统资源了决定不采用了,对于前面的两种办法大家帮参谋一下,看有什么意见
欢迎讨论chenjg1978@163.com
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-03-15 15:38
打印的PRINTJOB函数里可以获得打印的页数。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
ciggar
驱动牛犊
驱动牛犊
  • 注册日期2004-03-01
  • 最后登录2010-06-02
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望48点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-15 16:26
前面可能说得不清楚,补充一下:主要是讨论两个问题
1。是不是能自由添加print monitor,而不用管原来打印机配置是否有所谓的language
2.如果采取从系统spool获取信息的方法,最好能够截获系统的打印动作,从而避免了采取密集的循环监测spool的方法。这样实现的话应该去hook那个dll或exe文件中的api调用?
谢谢高手指点
y5318
驱动中牛
驱动中牛
  • 注册日期2001-09-18
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-03-16 08:21
第一个问题你有点混淆了,要不要language完全由你来做决定,如果你不要双向支持,这可以不要,否则,你就要

第二个问题,你可以看一看关于spool的一些接口函数,里面应该有你要的信息
游客

返回顶部