Usamos a seguinte rotina para isso:
function AtivaImpressoras(sImpressora: String) :Boolean; var tsImpressoras : TStrings; iContador : Integer; begin tsImpressoras := Printer.Printers; for iContador := 0 to (tsImpressoras.Count - 1) do tsImpressoras[iContador] := TrimRight(tsImpressoras[iContador]); Result := tsImpressoras.IndexOf(TrimRight(sImpressora)) > -1; if Result then Printer.PrinterIndex := tsImpressoras.IndexOf(TrimRight(sImpressora)) else begin Printer.PrinterIndex := -1; Application.MessageBox(PChar('Não foi possivel ativar a impressora [' + sImpressora + '] em questão. Verifique !'), 'Atenção' , mb_TaskModal + mb_ok + mb_IconWarning); end; end; Ricardo César Cardoso escreveu: > > Então de certa maneira isso aqui vira uma dica, não? Agora e se a > bendita da impressora USB não for padrão, como faço para identificar, > dentro da lista de impressoras que o objeto TPrinter (que é onde deve > estar PrinterIndex)? > > Não estou perguntado por preguiça, mas por não estar com o Delphi e > seu Help em mãos para consulta. A propósito; alguém sabe se é possível > consultar o Help do Delphi on-line (essa pergunta é por preguiça, > hehehehe) > > []'s > Ricardo. > > __________________________________________________________ > > "Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante!" > > --- Em sex, 6/2/09, Adriano Santos <fale...@adrianosantos.pro.br > <mailto:falecom%40adrianosantos.pro.br>> escreveu: > > Funciona sim, ele vai usar a impressoa ativa no momento. A que está no > PrinterIndex. > > 2009/2/6 deco0_07 <andre.almeida@ medicator. com.br>: > > > Bom, aqui funcionou, só precisei declarar na uses "Printers" pro > > AssisgnPrn.. > > > > > --- Em delphi...@yahoogrup os.com.br, Ricardo César Cardoso > > <ricardo_engsoft@ ...> escreveu > > > >> > >> Bom dia! > >> > >> Pesquisando sobre o assunto para um colega de outra lista, me > > deparei com o seguinte código fonte: > >> > >> [code] > >> var > >> Arq : TextFile > >> Begin > >> if PrintDialog1. Execute then begin > >> AssingPrn(Arq) ; > >> ReWrite(arq) ; > >> Writeln(Arq, 'Este é um teste !!'); > >> CloseFile(Arq) ; > >> end; > >> End; > >> [/code] > >> > >> Alguém que tenha uma impressora USB poderia fazer a caridade de > > testar se esse código funciona? Se tiver mais de uma impressora e > > puder repetir o teste seria ótimo. > >> > >> Muito do material que achei para impressão USB está em inglês e é > > muito nebuloso, para não dizer um quebra-cabeça. Se o código acima > > funcionar, problema resolvido. Mas se não funcionar, queria tentar > > montar esse quebra-cabeça. > >> > >> []'s > >> Ricardo. > > > > > -- > Adriano Santos > Director X-35 Consulting and Development > IT Manager SoftPark > Chief Editor Magazines ClubeDelphi && WebMobile > www.delphitodelphi.blogspot.com > www.adrianosantos.pro.br > www.devmedia.com.br > www.dug-sp.com > > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbuscados.yahoo.com <http://br.maisbuscados.yahoo.com> > > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature database 3832 (20090206) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com [As partes desta mensagem que não continham texto foram removidas]