看到好多Dos平台下的老程序都可以做到打印完一页内容后程序再进行下一页的打印,不知道是如何做到的。

解决方案 »

  1.   

    我没有用打印机带的驱动,我是通过写LPT端口数据来实现打印的,请问怎么设置不要脱机打印?
      

  2.   

    另:我在CSDN上搜索到一些信息,调用int $17来检测打印机状态,可是无法调试成功,当执行到int $17是,程序报错:EAccessViolation,请问应该怎样处理?
    附代码片断//声明部分
      b : byte; //声明变量//实现部分  
      asm
        mov ah, 2
        mov dx, 0
        int $17
        mov @b, ah
      end;错误在int $17行,会不会是权限的问题?
      

  3.   

    中断查询只能在Win98下使用,Win2000下无法使用。
      

  4.   

    那在Windows 2000 下应该如何实现?
      

  5.   

    通过直接写LPT端口数据,会有打印任务吗,除非你是用windows api,不是真的直接写LPT端口
      

  6.   

    可以取出打印机全部的信息,包括打印任务的状态等等,自己可以去查msdn,GetJob函数,找所有与这个相关的。
    BOOL GetJob(    HANDLE hPrinter, // handle of printer 
        DWORD JobId, // job identifier value 
        DWORD Level, // data-structure level 
        LPBYTE pJob, // address of data-structure array 
        DWORD cbBuf, // count of bytes in array 
        LPDWORD pcbNeeded  // address of value that contains count of bytes retrieved (or required) 
       );
      

  7.   

    我是这样做的,FileOpen,WriteFile,......., CloseFile当我CloseFile的时候打印机仍然在打印,我的目的是要知道CloseFile之前写入到打印机缓冲里的内容何时被打印完成。
      

  8.   

    你是用windows api,不是真的直接写LPT端口
    打印机属性-〉高级-〉直接输出打印机
      

  9.   

    谢谢风清杨,我知道我的想法错在哪了。感激不尽。我打算使用WinIo来试试看,如果成功马上结贴。