检测当前打印机状态
用内嵌汇编调用中断INT 17H,读取打印机的状态字节加以分析,即可得到其当前状态.
例:输入参数:如果有3个打印端口LPT1、LPT2、LPT3,那么输入参数LPTPort就是1、2、3。
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 &status,ah;
end;
end;
result := status;
end;
返回值有以下几种:
01H:超时
08H:I/O错误
10H:打印机未联机
20H:打印机缺纸
80H:打印机空闲。