怎样在程序打印之前检测打印机的状态是否正常啊?(50分)

  • 主题发起人 主题发起人 zeng_cao520
  • 开始时间 开始时间
Z

zeng_cao520

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在程序打印之前检测打印机的状态是否正常啊?[:D]
 
这个还用检查??
连word都没检查这个。
放那儿打就是了,坏了自然就出不来。
 
问打印机的生产商!!
 
uses printers;
....

var
pinfo: pPRINTERINFO2;
pprt,a: Cardinal;
b:PDWORD;
printer:Tprinter;
begin

printer;=Tprinter.create;

b:=allocmem(256);
pinfo:=AllocMem(1000);
if OpenPrinter(printer.printers,pprt,nil) then

begin

a:=1000;
if getprinter(pprt,2,pinfo,a,b) then

showmessage(pinfo.pPrinterName+' ststus:'+inttostr(pinfo.Status));
ClosePrinter(pprt);
end;


freemem(b);
freemem(pinfo);
end;
 
function GetPrinterStatus:byte;

asm
MOV DX,$379;

IN AL,DX;

end;


//获取打印机是否出错
function CheckPrinter:boolean;

var
temp:byte;

begin

temp:=GetPrinterStatus;

Result:=not ( ((temp and $80)=0) //打印机忙
or ((temp and $20)<>0) //打印机缺纸
or ((temp and $10)=0) //打印机未联机
or ((temp and $08)=0) );
//打印机出错;

end;


 
后退
顶部