Winxp LPT1 连接打字机, 没有驱动。 我用下面的代码向打字机输出文字OK. 但如果打字机没有联机, Writeln(F, 'test data'); 会有超时错误。 AssignFile(F, 'LPT1'); Screen.Cursor := crHourGlass; try Rewrite(F); Writeln(F, 'test data'); finally CloseFile(F); Screen.Cursor := crDefault; end; 请问WINXP如何可以检测LPT1的状态? 小弟试过网上的代码,有用assembly中断指令的(只适用于95/98). 也有用win API CreateFile('LPT1'....)方法的,试过也不行, 请各位大大帮忙!
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;