Página 1 de 1
Tipo de impressora com clipper
Enviado: 29 Abr 2009 17:29
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.
Tipo de impressora com clipper
Enviado: 29 Abr 2009 20:29
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.
Tipo de impressora com clipper
Enviado: 30 Abr 2009 11:38
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).
Re: Tipo de impressora com clipper
Enviado: 30 Abr 2009 16:28
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
Re: Tipo de impressora com clipper
Enviado: 30 Abr 2009 16:53
por anacatacombs
Boa tarde.
Sem esquecer, claro, do PRWIN - que agora é gratuito.
http://www.vagucs.com.br/prwin.htm
[]'s
Ana
Re: Tipo de impressora com clipper
Enviado: 30 Abr 2009 18:20
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.
Tipo de impressora com clipper
Enviado: 01 Mai 2009 18:34
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.