Tipo de impressora com clipper

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Tipo de impressora com clipper

Mensagem por Adalberto »

Estou precisando, a través do Clipper, reconhecer o tipo de impressora que está predeterminada (default); se é uma impressora matricial o Usb.

Muito obrigado.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tipo de impressora com clipper

Mensagem por Pablo César »

Olá Adalberto,

Tem várias formas de ver isso. Uma é através do arquivo WIN.INI quando for Win98 no item DEVICE inclusive mostra se está em que porta (LPT1, LPT2, etc. Existe outros aplicativos no WINXP que também mostra os dispositivos instalados (um deles é o WINMSD que pode gravar resultado em arquivo). Teria também como saber através do REGISTRY do Windows, uma das chaves HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices.
Mas para não ir tão longe... tem a biblioteca/utilitário WAPI do Maligno que dá certinho uma listagem das impressoras instaladas, qual é a default e em que porta estão configuradas (veja o switch: -GETPRINTERS). Eu uso é muito eficiente, inclusive para saber se é paralela ou USB.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tipo de impressora com clipper

Mensagem por Pablo César »

Irei dar alguns exemplos como listar as impressoras que estão cadastradas no PC através da WAPI, atendendo pedido do colega por eMail.

Você tem duas formas (pelo aplicativo e pela LIB) de obter o mesmo resultado através da WAPI.LIB e o aplicativo WAPI.EXE, que este DEVE sempre estar no diretório corrente (onde está sua aplicação):

1. Executando o WAPI.EXE, por sua vez, tem mais duas formas que eu utilizo o aplicativo.

a. Eu acostumo chamar meu sistema através de arquivo .BAT o que me permite maior flexibilidade. No meu arquivo .BAT que é o chamador do programa, verifico e configuro o meu ambiente de trabalho. Se estou numa rede local, se está mapeada a unidade onde se encontra o servidor, se está capturada a impressora em rede, se o terminal tem alguma definição de nome, qual é a versão do Windows. Enfim, para quem tem dominio do MS-DOS, fica fácil de implementar opções. E uma delas é obter a lista de impressoras que estão instalada no PC. O meu BATCH obedece um looping onde executo as opções de menú. Mas para não complicar, não entrarei em detalhes. Vamos ao que interessa... Então chamo de dentro do arquivo .BAT por única vez o WAPI.EXE, da seguinte forma:

RUN WAPI -GETPRINTERS:PRINTERS.TMP

No arquivo PRINTERS.TMP irá conter este exemplo que contém no meu PC:
0,HP DeskJet 560C,LPT1:
1,Epson LX-300,LPT1:

Depois entra no programa. Na opção de relatório, posso importar esse dados ora seja para matriz ou até mesmo para dbf. Note no arquivo PRINTERS.TMP que o zero determina que é a impressora padrão (default), logo vem o nome conforme foi instalada (se mudar no Windows, muda também aqui e depois vem a informação que você estava querendo, isto é, se está em LPT1, LPT2, ou até mesmo em USB, que se não me falha a memória começa com a string USB????

b. Outra forma de chamar o WAPI.EXE é dentro da sua aplicação através do RUN ou SWPRUNCMD (este ultimo, caso você esteja usando o BLINKER). Com a opção do BLINKER é mais seguro, por questião de memória. Na sua aplicação você irá chamar:

RUN WAPI -GETPRINTERS:PRINTERS.TMP
ou
SWPRUNCMD("WAPI -GETPRINTERS:PRINTERS.TMP")

2. A outra forma é utilizar a função interna da WAPI.LIB para chamar a mesma função. Esta é a indicação preferida do autor do utilitário/biblioteca (neste caso o Maligno). Mas também aconselho a usar o BLINKER. E você inserirá no seu fonte: aMatriz:=GetPrinters() e obterá numa matriz o avlor 0 para default, nome da impressora e onde está instalada. Esta opção ja está mastigada. Tudo dependerá de como você manipulará os dados e do ambiente e ferramenta com que trabalha.

Bem espero ter esclarecido o funcionamento da biblioteca / aplicativo do Maligno. Veja como são as coisas, eu ja escutei como crítica que essa biblioteca do Maligno é uma gambiarra, porque é uma biblioteca que utiliza-se de uma aplicativo, na verdade foi para desmerecer o trabalho do benemérito colega (fazer o quê... as vezes não recebemos o mesmo que damos). Eu ja acho, uma riqueza muito funcional e muito aproveitável. Pois você pode obtar por utilizar o aplicativo ou em forma de biblioteca. Na minha concepção esse ejambramento é uma coisa de gênio. Possibilitando as aplicações em Clipper fazerem uso de alguns recursos de API do Windows. Pois até o momento não tínhamos esses recursos. Eu não me canso de agradecer ao colega, que ora disponibilizou seu tempo e recursos de forma gratuita, bem documentada e ainda ele pretende ampliar com alguns recursos que iriam (na minha opinião) fazer desse aplicativo/biblioteca uns dos melhores recursos externos para o Clipper. Fiz este tutorial com o fim de repassar a minha experiência a todos, por consideração e respeito pelo trabalho do colega e me desculpe Adalberto eu não optar por responder seu email (ora que podia ter sido em Castelhano), mas desta forma servirá para os outros também e se você não entender alguma coisa por conta do idioma, pergunte que isso aqui pôde ! E ainda mantenho o meu compromisso de traduzir a parte documentação do aplicativo para o español quando ele "finalizar" seu trabalho.

E ainda como eu disse na mensagem anterior tem a opção de acessar o REGISTRY do WINDOWS com a WAPI também (veja ReadWReg((<cKeyPath>,<cEntry>) -> array no README.TXT que acompanha o pacote).
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Tipo de impressora com clipper

Mensagem por asimoes »

Em clipper
Use a WAPI.

Em (x)Harbour você pode verificar assim a porta com o seguinte comando:

aPorta :=GetPrinters(.T.)
cPorta := aPorta[1,2] (o segundo parametro do vetor lhe informa se é USB, LPT1..X ou outro tipo.

[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

Re: Tipo de impressora com clipper

Mensagem por anacatacombs »

Boa tarde.

Sem esquecer, claro, do PRWIN - que agora é gratuito.

http://www.vagucs.com.br/prwin.htm

[]'s

Ana
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Re: Tipo de impressora com clipper

Mensagem por Adalberto »

Pablo César.

Graças a Deus por responder tão pronto é de forma didática, ontem, quando aguardava a luz de tua resposta, que agora chegou, lei a documentação que o mestre maligno disponibilizou e logre fazer funcionar a maravilhosa ferramenta que é a WAPI, anulei o botão X, coloquei titulo e agora com tuas indicações vou conseguir a
impressora padrão.

O que me faltaba era adicionar a CTP53.LIB.

Vou ler e estudar com atenção todo o referente a esta LIB.

Hoje só me falta agradecer em grande maneira a o mestre maligno por seu gênio posto a nosso serviço e a você Pablo César por esta e outras atenções e claro que também minha gratidão para os colegas que postaram para me ajudar.

Deus abençoe vocês.

Um grande abraço.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tipo de impressora com clipper

Mensagem por Pablo César »

Disponha sempre Adalberto, você é sempre bem vindo, gosto muito da sua sensibilidade e reconhecimento, não só comigo como com todos os colegas. Sempre bem atencioso, você. E fico feliz que você possa ter tido bom proveito dos recursos da WAPI. Pois para mim dá tão certo, que muitas vezes penso que foi feita exclusivamente para mim... e gosto repassar a minha experiência, pois muitas vezes surgem outras situações que podem ser adaptadas, assim como o seu caso agora que resolveu três situações.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder