目前市面上有很多的打印机监控软件,然而其中大多数只是做到了监视,基本的功能就是统计哪个用户打了多少份文档,是什么文档,打印了多少页等等数据。
其实实现监视的功能相对还是比较简单的,也许你看了msdn中的printmon例子,再看看msdn中关于printmon例子中使用的那些函数(enumjob,findfirstprinterchangenotification...),你也能写出一个像样的打印机监控软件了。
但是如果想控制是否让某个人在某个时间在某台打印机上打印,那可就有点难度了,事实在M$并没有为共享的网络打印机上做他们为共享文件夹的那些工作(至少xp/2000/98是如此),你访问共享打印机时必须依靠共享打印机everyone都有打印的权限时,没有访问共享文件夹时出现的那种用户密码框。
这一部分也许是M$留给我们的功课吧,于是SMB,CIFS,甚至NIDS都是需要的,因为我们没有源代码可以参考,我们无法将共享文件夹那种形式套用到打印机中去。像我这么傻的人就会选择试图写一个ndis Intermediate driver 来过滤smb包。。。差不多是要写一个firewall了。
不知道是否有更好的办法,下面是printmon的下载地址:
http://support.microsoft.com/default.aspx?scid=kb;en-us;196805