Verificar se a impressora está ligada no Delphi
Usando instruções Assembly podemos fazer isto. A função
abaixo retorna true se a porta informada está pronta.



Os possíveis parâmetros para esta função são:
1 - para LPT1
2 - para LPT2
3 - para LPT3
4 - para LPT4

function tbTestLPT(Port: byte): boolean;
var
  Pto : Word;
  Rdo : byte;
begin
  Pto := Port -1;
  asm
    MOV  DX,Pto
    MOV  AX,$0200  {AH := $02 : Leer el estado de la impresora}
    INT  $17
    MOV  Rdo,AH     {Guarda el estado en AL}
  end;
  Result := Rdo = 144;
end;

Talvez esta função não funcione no Windows NT devido ao acesso em baixo nível.