Pregunta: | 4485 - COMO PUEDO CHEQUEAR SI ESTA LISTA LA IMPRESORA EN PUERTO LPT |
Autor: | Roberto Martinez Olvera |
Hice un programa que imprime en una impresora local conectada al puerto lpt1, estoy usando la instruccion Writeln, escribiendo al puerto ´LPT1´, el problema es que si la impresora no esta lista se bloquea. ¿Como puedo checar si esta lista la impresora o no? Ya intente con IOResult, con la interrupcion 17h y no. Alguien puede ayudarme...Gracias |
Respuesta: | Omar Silva Muñoz |
Forma Delphi: function IsPrinter:boolean; var Impresora:TExtFile; begin AssignFile(Impresora,´lpt1´); {$I-} Rewrite(Impresora); {$I+} if ioresult<>0 then result:=False // impresora er else result:=True; // impresora ok end; Forma Ensamblador: function IsPrinter:boolean; const PrnStInt:byte=$17; StRq:byte=$02; PrnNum:word=0; {0 para lpt1, 1 para lpt2, etc} var nResult:byte; begin asm mov ah,StRq; mov dx,PrnNum; Int $17; mov nResult,ah; end; result:=(nResult and $80)=$80; end; |