tem como prever se tem impressora instalada na porta LPT1

Delphi

13/10/2003

ola galera

gostaria de uma ajuda de vocês tem como prever se tem impressora instalada na porta LPT1, por que se não tiver instalado da um erro, gostaria de prever este erro.

felipecremm@hotmail.com

Felipe


Fcremm

Fcremm

Curtidas 0

Respostas

Gem

Gem

13/10/2003

não sei se vai ajuda-lo mas entre as dicas que eu tenho
tenho essa aqui


Verificar se Impressora esta Conectada
A dica abaixo apresenta o código para implementação de uma função para verificar se a impressora esta conectada.

Para implementar esta função é necessário que o código gerado manipule algumas interrupções da Bios (Sistema Básico de Entrada e Saída) responsáveis pelo controle da porta paralela (Interrupção $17).

A interrupção $17 utiliza dois registros ah e dx, o registrador ah indica neste caso o acesso a porta paralela e o registrador dx indica qual das portas será testada, 0 para LPT1 e 1 para LPT2.

Para saber se a porta esta ligada (impressora conectada) o resultado da operação de tratamento de interrupção deve ser $80.

Código Completo:

Function OnLine(Porta:Word):Boolean;
Const
Portas :Byte = $02;
Var
Res :Byte;
Begin
{ Código em Assembler }
Asm
mov ah,Portas; {Requisita o acesso as portas}
mov dx,Porta;{Define a porta de teste}
Int $17; {Chama a interrupção de Impressora}
mov Res,ah; {Guarda em Res o resultado da operação }
end;
Result := (Res and $80) = $80; {Testa o valor de saída}
End;


GOSTEI 0
Rafael Heise

Rafael Heise

13/10/2003

Caro Colega..
Se o seu problema é quanto existir ou não uma impressora, você pode usar o seguinte:
function HavePrinter: boolean;
var
prt: TPrinter;
begin 
  prt := TPrinter.Create;
  try
    result := prt..Printers.Count > 0;
  finally
    prt.Free;
  end;
end;

esta função retorna true se existir alguma impressora e false se não existir nenhuma.
Mas não testa se ela está funcionando ou não. Apenas testa para ver se existe alguma instalada.
Mas já dá pra fazer o teste de existência...
abraços


GOSTEI 0
POSTAR