我要做一个批量的打印,反复调用打印模块。我想判断打印列表中某个打印任务是否结束。如果结束就发送下一个打印的内容到打印模块。

解决方案 »

  1.   

    用api函数EnumJobs:EnumJobs
    说明:
    枚举打印队列中的作业
    声明:
    Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
    返回值:
    Long,非零表示成功,零表示失败。会设置GetLastError
    参数:
    hPrinter -------  Long,一个已打开的打印机对象的句柄(用OpenPrinter获得)  FirstJob -------  Long,作业列表中要枚举的第一个作业的索引(注意编号从0开始)  NoJobs ---------  Long,要枚举的作业数量  Level ----------  Long,1或2  pJob -----------  Byte,包含 JOB_INFO_1 或 JOB_INFO_2 结构的缓冲区
      cbBuf
      Long,pJob缓冲区中的字符数量  pcbNeeded ------  Long,指向一个Long型变量的指针,该变量用于保存请求的缓冲区长度,或者实际读入的字节数量  pcReturned -----  Long,载入缓冲区的结构数量(用于那些能返回多个结构的函数)