Impressora de rede

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Impressora de rede

Mensagem por DLZ »

Ola pessoal..
Estava utilizando a função GetPrintrs do Xharbour para ler as impressoras intaladas no Windows..
Essa função retorna um Array com alguas informações, entre elas a Porta onde a impressora está instalada..
Poré, se eu tenho uma impressora de rede instalada no windows, essa função retorna LPT1 na porta e não retorna em lugar nenhum o endereço onde a impressora está instalada ( \\nome do computador ou ip\Nome do compartilhamento)

Existe alguma maneira de "pegar" essa infromação de impressoras de rede instaladas no windows ??
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Impressora de rede

Mensagem por Maligno »

Você não imprime usando o spool do Windows? Se for usá-lo, o nome da impressora basta.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Impressora de rede

Mensagem por Itamar M. Lins Jr. »

Ola!

Eu uso assim, com hwgui e funciona que é uma beleza.

Código: Selecionar todos

aImpressoras := GetPrinters()

 @ 385,065 say "Impressora:" Size 260,22
 @ 460,060 get ComboBox oAi02 var vAi02 ITEMS aImpressoras TEXT Size 220,150
Inclusive retorna as impressoras da rede.

Não entendi direito, pq vc não pega o endereço completo \\xyz\abc.

Aqui aparece todas as impressoras que estão cadastradas na minha estação.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Re: Impressora de rede

Mensagem por Eolo »

A resposta da função GETPRINTERS() vai depender de onde ela está rodando. Se vc tem por exemplo os PCs Servidor e Usuario, em rede, e a impressora "HP DESKJET" conectada no PC Servidor e compartilhada:

a) se rodar a função no PC Servidor:

Código: Selecionar todos

? GETPRINTERS()
HP DESKJET

? GETPRINTERS(.T.)
HP DESKJET
USB001
LOCAL
HP DESKJET
b) se rodar a função no PC Usuario:

Código: Selecionar todos

? GETPRINTERS()
\\SERVIDOR\HP DESKJET

? GETPRINTERS(.T.)
\\SERVIDOR\HP DESKJET  // aqui ela retorna o endereço completo
USB001
NETWORK
HP DESKJET
---------------------------
Nota de Moderação (Toledo): a mensagem foi editada para colocar a tag [ code ].
Veja mais detalhes: faq.php?mode=bbcode#f21
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: Impressora de rede

Mensagem por DLZ »

Bom dia..
Acabei descobrindo a solução.. Com certeza isso vai parecer óbvio para os "Bruxos" aqui no fórum, mas para mim isso foi uma descoberta !! ehehehe
Analisando o manual do Xharbour, descobri a função PintFileRaw() que acabou atendendo a minha necessidade. Eu só tive que imprimir o relatório num texto primeiro e depois passar o texto para essa função ( nada demais ). A grande vantagem é que nessa função eu passo somente o nome da impressora instalada no windows, e era exatamente isso que eu estava a procura..
Obrigado a todos !!
Um abraço
Responder