请问如何检测打印机状态?(50分)

  • 主题发起人 主题发起人 nomit
  • 开始时间 开始时间
N

nomit

Unregistered / Unconfirmed
GUEST, unregistred user!
function TestPrinterStatus(LPTPort: word): byte;
var
Status: byte;
CheckLPT: word;
begin

Status := 0;
if (LPTPort >= 1) and (LPTPort <= 3) then

begin

CheckLPT := LPTPort -1;
asm
mov dx, CheckLPT;
mov al, 0;
mov ah, 2;
int 17h;
mov &amp;Status, ah;
end;

end;

Result := Status;
end;

参数时打印机端口,返回值如下:
01h - Timeout
08h - I/O Error
10h - Printer selected
20h - Out of paper
40h - Printer acknowledgement
80h - Printer not busy (0 if busy)
============================================
但是 int 17h;
提示出错,哪位大哥能帮帮小弟?
 
这个问题以前我也想解决,但是Windows平台是Vxd的对用户透明的机制,好想做不了检测打印机的通用程序(代码和你的差不多,单检测出来的结果就不对了),但是你可以根据不同打印机作不同的检测,具体方法只能是看打印机提供的函数了
 
谢谢大哥了,这个问题憋了我两天了!
 
后退
顶部