Fórum Verivicar Impressoras #185661
01/10/2003
0
Ai Galera !!!
Alquem sabe como fazer para verificar se a improssora local e na rede esta pronta para imprimir
Até já Agradeço
Marcelo
Alquem sabe como fazer para verificar se a improssora local e na rede esta pronta para imprimir
Até já Agradeço
Marcelo
Marcelo.almeida
Curtir tópico
+ 0
Responder
Posts
01/10/2003
Joilson_gouveia
551 - 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;
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;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)