我使用QReport做报表、打印。使用的是网络打印机。
程序运行后,如果默认的网络打印机没有准备就绪、或者是网线没插好时,点击“预览”后,就会提示出错,提示信息如下:
Access violation at address 77f49957.Write of address 001a9000
我奇怪的是打印机不是由windows自己管理的吗,为什么找不到打印机的时候,会向上面那样提示访问了无效的内存地址呢?这个错误改如何改呢?
另外,当默认的网络打印机准备就绪时,预览和打印都是正常的。
程序运行后,如果默认的网络打印机没有准备就绪、或者是网线没插好时,点击“预览”后,就会提示出错,提示信息如下:
Access violation at address 77f49957.Write of address 001a9000
我奇怪的是打印机不是由windows自己管理的吗,为什么找不到打印机的时候,会向上面那样提示访问了无效的内存地址呢?这个错误改如何改呢?
另外,当默认的网络打印机准备就绪时,预览和打印都是正常的。
except
end;
捕捉该错误并处理
我用的就是try
郁闷中!!!!
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;