我想实现如下的功能,任何客户端的软件打印到网络打印服务器都转发到一台计算机上用一个软件来确认。如果人为确认通过就可以打印否者不允许打印

解决方案 »

  1.   

    shuixin13(犬犬(心帆)) 说的有道理
      

  2.   

    shuixin13(犬犬(心帆)) 说的有理,但权限可以控制更严一点,对个别用户,既然不让他打印,看都不允许不是更好!
      

  3.   

    我有一个建议,不过可能不能马上截获,而只能在打印任务提交后可以控制是否中止。
    1 使用API函数OpenPrinter,Enumjobs获取打印机的当前作业列表,当然用完后记得ClosePrinter。
    2 把返回的JOB_INFO_1或者JOB_INFO_2结构发送到目标计算机,这个用midas就可以实现了。
    3 检查JOB_INFO_1或者JOB_INFO_2中的pUserName成员,手动确认是否有权打印,返回结果给打印服务器。
    4 如果有权打印,不用做任何操作,等待打印机打印即可。否则,使用SetJob取消该打印作业。
    5 至于打印的过程,自己写数据库记录,或者读取NT系统的系统日志都可以。
      

  4.   

    slyse
     谢谢你的帮助,我试试看。其实我想建立一个虚拟的设备(打印机),会不会更好,无论如何
    先给你100分
      

  5.   

    兄弟这的问题我认为这样最简单
    在打印前,用一个TABLE记录下要打印的报表名,打印条件(如月份),申请人,时间,是否可以打印等,并不停检测是否已回复,或自行取消,
    在打印机电脑上或另一部电脑上的打印控制用户,用TIMER每30秒,搜索TABLE的新印请求并且没有回复的记录
    有的话,依次或用列表显示,审批是否可以打印,并用TABLE记录相关信息,时间、人名、原因等
    请求打印人员,检测到回复,执行打印或取消