Verificar se Impressora esta Conectada 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;
Verificando se a impressora está ativa While not PrinterOnline() do begin MsgBox('Verifique a Impressora!','ATENÇÃO'); end; Function PrinterOnLine : Boolean; Const PrnStInt : Byte = $17; StRq : Byte = $02; PrnNum : Word = 0; { 0 para LPT1, 1 para LPT2, etc. } Var nResult : byte; Begin (* PrinterOnLine*) Asm mov ah,StRq; mov dx,PrnNum; Int $17; mov nResult,ah; end; PrinterOnLine := (nResult and $80) = $80; End; ----- Mensagem original ---- De: Paulo Geloramo <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Quarta-feira, 23 de Maio de 2007 17:09:03 Assunto: [delphi-br] Verificar se tem impressora na porta LPT1 Estou enviando a palavra Teste para a imperssoa conectada na porta LPT1 conforme exemplo abaixo: Funciona perfeitamente, mas quando o usuario não possui impressora conectada na porta LPT1, o aplicativo trava , não mostrando mensagem de erro. Como poderia evitar esta travada da aplicação, verificar se possui impressora na porta selecionada e apresentar uma mensagem ao usuário? procedure Imprimir; var F: TextFile; begin AssignFile(F, 'LPT1'); Rewrite(F); try WriteLn(F, 'Teste'); finally CloseFile(F) ; end; end; t+ __________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]