Ir ao topo

Tecnobyte

Logomarca da Tecnobyte
Contato por WhatsApp

WhatsApp

(69) 3421-6756

Contato por Telefone

(69) 3421-6756

(69) 3421-6757

Enviar mensagem

Enviar

mensagem

Contato por Facebook

Facebook

Vídeos

Vídeos

Atendimento de segunda a sexta, das 08h00 às 19h00 (horário de Brasília).

Banner

Delphi - Impressão

Como detectar se a impressora está ligada?

Problema:

Faço impressão direta para a porta da impressora e gostaria
testar se a impressora está pronta antes de enviar o 
relatório. Isto é possível em Delphi?

Solução:

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;

Observações

Provavelmente esta função não funcionará em Windows NT devido ao acesso em baixo nível.

O conteúdo desta página pode ajudar alguém? Compartilhe!