阅读:1489回复:3
讨论一下监控打印的问题
最近帮一个哥们儿做监控软件,需要监控打印机的使用情况如何时添加打印机、打印文件时间、页数、文件名等。。。
考虑了许久想有两种方法: 1.编写打印monitor这样的话就可以截获或有的addprintjob等等之类的调用,里面有打印文件名的信息。不足的是到现在还没发现怎么截到打印的页数,而且对于已有language monitor的打印机,是不是还能添加monitor?(language monitor是不是分层的?) 2.通过hook spoolsv程序中的api调用(addjob,等等)来获取打印信息,但还是不太清楚应该hook那个dll中的api 其实还有一种方法,就是用程序不停的枚举spool中的打印任务,这样太笨了,也太消耗系统资源了决定不采用了,对于前面的两种办法大家帮参谋一下,看有什么意见 欢迎讨论chenjg1978@163.com |
|
沙发#
发布于:2004-03-15 15:38
打印的PRINTJOB函数里可以获得打印的页数。
|
|
|
板凳#
发布于:2004-03-15 16:26
前面可能说得不清楚,补充一下:主要是讨论两个问题
1。是不是能自由添加print monitor,而不用管原来打印机配置是否有所谓的language 2.如果采取从系统spool获取信息的方法,最好能够截获系统的打印动作,从而避免了采取密集的循环监测spool的方法。这样实现的话应该去hook那个dll或exe文件中的api调用? 谢谢高手指点 |
|
地板#
发布于:2004-03-16 08:21
第一个问题你有点混淆了,要不要language完全由你来做决定,如果你不要双向支持,这可以不要,否则,你就要
第二个问题,你可以看一看关于spool的一些接口函数,里面应该有你要的信息 |
|