Array
(
)

Porta da impressora

Rcasistemas
|
MVP
    15 fev 2006

Olá, bom dia a todos...

Gostaria de saber como pegar a porta de uma impressora instalada.

Sei q para listar as impressoras instaladas faço o seguinte:
#Código


ListBox1.Items := Printer.Printers;


E para pegar a porta de cada uma??

Agradeço a ajuda de todos.

Abraços


Massuda
   - 15 fev 2006

Talvez [url=http://forum.clubedelphi.net/viewtopic.php?t=62545]este tópico[/url] seja útil para você.


Leonardobhbr
   - 15 fev 2006

esse codigo realmente é quase perfeito ele só nao pega as impressoras de etiquetas


Rcasistemas
|
MVP
    15 fev 2006

Massuda, gostei muito do codigo, estava penando aki com um outro achado neste mesmo fórum....
Tive soh um problema....

Eu usava o seguinte codigo
#Código


function TFMainView.GetPortToPrint(Prntr: TPrinter; Index: Integer): String;
begin
if Pos(´LPT´, printer.Printers.Strings[Index]) > 0 Then
Result := ´LPT1´
else if Pos(´\\´, printer.Printers.Strings[Index]) > 0 Then
Result := Copy(printer.Printers.Strings[Index],
Pos(´\\´, printer.Printers.Strings[Index]),
length(printer.Printers.Strings[Index]) -
Pos(´\\´, printer.Printers.Strings[Index]) + 1);
end;


E isto me retornava perfeitamente o caminho das impressoras de rede (como exemplo ´\\servidor\lx-300´).

Mas isto acontecia pq eu pegava o nome da impressora atraves do metodo:
#Código

Printer.Printers.Strings[Index]


e isto me retornava somente o nome \\Servido\LX-300.

Agora com as funçoes indicadas, eu recebo o retorno \\Servido\LX-300 on LPT1.

Sei q posso dar prioridade a verificar primeiro se existe \\ no nome da impressora para verificar se ela estah na rede, e caso o contrario, eu verifico o q vem apos a string on.

Bem acho q isto resolverá o meu problema, mas gostaria de ter uma ultima opniao sua Massuda.

Seria possivel???

Desde jah sou muito grato...

Abraços


Massuda
   - 15 fev 2006


Citação:
if Pos(´LPT´, printer.Printers.Strings[Index]) > 0 Then
Acho que no Win NT/2K/XP o nome da impressora não vem com o nome da porta (esse é o motivo do tópico que indiquei no post anterir)... acho que seu código falharia nesse caso.


Citação:
Sei q posso dar prioridade a verificar primeiro se existe \\ no nome da impressora para verificar se ela estah na rede, e caso o contrario, eu verifico o q vem apos a string on.
Se eu entendi direito, isso deve resolver.


Rcasistemas
|
MVP
    15 fev 2006

Vlw pela força, vou implementar meu codigo....

Vou dar o assunto por encerrado e agradecer a atenção recebida...


Qq problema, poh deixar q eu grito (^.^)

Abraços