WAPI v1.05 - Funções da API do Windows

Fórum sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

Avatar do usuário
adilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 93
Registrado em: 01 Fev 2008 07:02
Localização: americana - sao paulo

A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???

Mensagem por adilson »

E porque ao executar o PRINTFILE(), está dando erro undefined function DISKNAME, e mesma so a vi no cliper 5.3 tem como resolver isto ??

meus agradecimentos a todos.

:{
Burroughs L3000 (4 kb ram) e B700,Labo 8034-8038 (Basic Nixdorf),Apple II plus,Clipper 5.2e e começando com xharbour 0.99.70
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á

Re: A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???

Mensagem por Pablo César »

A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???
Totalmente compatível.
E porque ao executar o PRINTFILE(), está dando erro undefined function DISKNAME
Pela simples razão que precisa dessa função e na versão 5.2 do Clipper não possue. Mas se utilizares a biblioteca CT.LIB você vai conseguir perfeitamente.

A documentação de todo o trabalho que envolve a WAPI, na minha opinião é farta de informação e de fácil comprensão, dificil ver isso em software livres. A utilização da WAPI.LIB em certas funções exigem o uso de outras bibliotecas externas que o Clipper não possui e que para auxiliar o funcionamento das funções da WAPI. Se bem que no \lib\todo.txt (TODOLIST da WAPI) o Maligno menciona "Remover a dependência das bibliotecas CATools e NanFor".

Outra forma de utilizar as funções do WAPI seria utilizar o RUN/SWAPRUNCMD WAPI.EXE -<função> que também funciona, embora utilizando-se da WAPI.LIB e chamar as funções diretamente você reduziria as margens de erros pois a biblioteca tem muitos procedimentos de verificação de parametrização e análise de erros durante a execução. Mas enfim, está aí o grandioso trabalho do Maligno e pode ser utilizado da forma que você achar melhor e ainda gratuitamente. Aconselho ao colega dar uma olhada nos exemplos, na documentação de todo o pacote da WAPI.
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
filizola
Usuário Nível 3
Usuário Nível 3
Mensagens: 421
Registrado em: 19 Ago 2003 20:10
Localização: Belo Horizonte/MG

Re: A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???

Mensagem por filizola »

seria legal se pudessem ser removidas estas dependencias. tem como fazê-lo?


rtlink fi t1 lib wapi
.RTLink for Clipper Dynamic Overlay Linker / Pre-Linker Version 3.14B
(C) Copyright Pocket Soft Inc., 1988-1991. All Rights Reserved.


UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH:
SYMBOL FIRST REFERENCE
------ ---------------
'SWPRUNCMD' WAPI.LIB
'DIRCHANGE' WAPI.LIB
'DIRMAKE' WAPI.LIB
'DIRNAME' WAPI.LIB
'DISKNAME' WAPI.LIB
'RAND' WAPI.LIB
'RANDOM' WAPI.LIB

warning wrt0022: .EXE may not execute properly -- undefined symbols
169K
1 warning message(s)
"Um passo a frente, e já não estará mais no mesmo lugar..."
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???

Mensagem por Maligno »

filizola escreveu:seria legal se pudessem ser removidas estas dependencias. tem como fazê-lo?
Sim. Tanto tem que essa tarefa faz parte da TODO list do projeto. É só uma questão de tempo. :)
[]'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
adilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 93
Registrado em: 01 Fev 2008 07:02
Localização: americana - sao paulo

Re: WAPI v1.03 - Funções da API do Windows.. a tela minimiza ...

Mensagem por adilson »

ok ! pessoal valeu pela informacao(funcionou) muito obrigado! , so mais uma coisa (please) , porque apos usar a funcao PRINTFILE(), o sistema e minimizado ?? alias usando tb o DOSPRINT, ou qq outro meio para a impressao em usb , no meu caso uso (Windows Xpessimo)e impressoa lexmark z13 (hui), tem como resolver isto ?? , ja garimpei na net e nada . caso os nobres colegas souberem alguma dica, porfavor ..

obrigado a todos....

:{
Burroughs L3000 (4 kb ram) e B700,Labo 8034-8038 (Basic Nixdorf),Apple II plus,Clipper 5.2e e começando com xharbour 0.99.70
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Re: WAPI v1.03 - Funções da API do Windows

Mensagem por Netavin »

Bom dia amigos!
Malígno, não consigo acessar http://buzinello.com/download/wapi.zip.
Erro 404.

:|

[]´s

Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Já não é mais esse diretório há muito tempo. Agora é:
http://pub.buzinello.com/index.php?d=./ ... pper/libs/
[]'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
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: WAPI v1.03 - Funções da API do Windows.. a tela minimiza ...

Mensagem por Maligno »

adilson escreveu:porque apos usar a funcao PRINTFILE(), o sistema e minimizado ?? alias usando tb o DOSPRINT, ou qq outro meio para a impressao em usb , no meu caso uso (Windows Xpessimo)e impressoa lexmark z13 (hui), tem como resolver isto ??
É muito estranho. O DOSPrint nunca usei, mas com a WAPI isso não me acontece. Mas se, ao começar a imprimir, o sistema muda para o modo janela, provavelmente é porque alguma janela do Windows recebeu o foco do SO. Quando isso acontece aparece alguma janela?
[]'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
adilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 93
Registrado em: 01 Fev 2008 07:02
Localização: americana - sao paulo

Re: WAPI v1.03 - Funções da API do Windows

Mensagem por adilson »

maligno boa tarde , no meu caso estou usando uma lexmark z513 ela estava abrindo o gerenciador
LEXMARK desativei, mas mesmo assim agora quando o sistema volta meia tela, ai usei o setmode(25,80) e resolveu esta parte, e agora ele minimiza meu programa na barra do menu iniciar.

Outra Coisa : a Funcao PRINTFILE() esta enviando corretamente para o spooler ai parece
imprimindo,excluindo ... ok ,so que nada sai no papel , segundo o suporte do fabricante, a mesma alega que esta impressoras nao emulam TEXTOS MSDOS. isto sera Verdade??


grato ate aqui pela grande ajuda de VOCE e ao DEMAIS menbros..


obrigado...
Burroughs L3000 (4 kb ram) e B700,Labo 8034-8038 (Basic Nixdorf),Apple II plus,Clipper 5.2e e começando com xharbour 0.99.70
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

adilson escreveu:estou usando uma lexmark z513 ela estava abrindo o gerenciador
LEXMARK desativei, mas mesmo assim agora quando o sistema volta meia tela, ai usei o setmode(25,80) e resolveu esta parte, e agora ele minimiza meu programa na barra do menu iniciar.
Minha impressão processa como se ela realmente fosse feita pelo Clipper. Nem minimiza ou troca o modo para janela. Esse é o comportamento normal, a não ser, claro, na hipótese que mencionei: um aplicativo Windows recebe o foco a partir do momento em que a impressão é iniciada. No demais, não poderia/deveria sequer minimizar.
segundo o suporte do fabricante, a mesma alega que esta impressoras nao emulam TEXTOS MSDOS. isto sera Verdade??
Totalmente. Algumas impressoras, que alguns chamam errôneamente de for Windows, não possuem tabelas de caracteres nativas, necessidanto assim, que toda a impressão seja completamente gráfica. Se for esse o seu caso, pela WAPI ainda não dá. Você terá de utilizar outro programa: PRWin do Vagner (pago), USB do Heveraldo (grátis) ou qualquer outro que transforme seu texto em gráfico.

Opcionalmente, você também pode migrar para o XHarbour, que possui uma classe de impressão apropriadamente preparada para esse tipo de impressão gráfica. É um pouco mais complicado, pois isso sugere a recompilação de todo o seu projeto e nem sempre essa migração é tranqüila, como alguns colegas já relataram.

Se estivesse no seu lugar, primeiramente testaria o programa USB.EXE do Heveraldo. É grátis e fácil de usar. Infelizmente não é a última versão disponível, mas só porque o Heveraldo ainda não liberou a última que preparou. Mas há quem use a antiga mesmo, com sucesso.
[]'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!
FabioAugusto
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 05 Mai 2008 16:57

WAPI v1.03 - Funções da API do Windows - não executa

Mensagem por FabioAugusto »

Maligno, boa tarde!

Baixei a WAPI e estou linkando da seguinte forma:

BLINKER INCREMENTAL OFF
BLINKER CLIPPER PAGE OFF
BLINKER EXECUTABLE CLIPPER F180
BLINKER EXECUTABLE EXTENDED
BLINKER OVERLAY OPSIZE 50
BLINKER OVERLAY PAGEFRAME ON
BLINKER PROCEDURE DEPTH 250
BLINKER EXECUTABLE COMPRESS 1

OUTPUT PDV.EXE

BEGINAREA
File Pdv, Profile, Moviment, Transfer, Cadastro
File Consulta, Apoio, Param, Filtro, Cliente
File Cliente1, Metas, Tabela, Compra, Relatori
File Estoque, TransfMJ, Ecf, timeslic, __wait_b, CTUSP
lib WAPI, CL_ECF, C_ECF_PL, CLIB, CTP
ENDAREA

SEARCH \BLINKER7\LIB\BLXCLP53
@C:\BLINKER7\CLP\LNK\CL530MAX.LNK

Porem, quando eu incluo no Relatori.prg a linha "aPrint := GetPrinters()" e compilo o sistema, o executavel PDV.EXE aborta antes mesmo de iniciar a tela principal!
O que será que estou fazendo de errado ?? vc pode me dar um help?? :%

Abraços

Fabio A França
Ps: Estou usando Clipper 5.3 e Blinker 7
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: WAPI v1.03 - Funções da API do Windows

Mensagem por Maligno »

Acho que já sei qual é o problema. Não se preocupe. Se for o que estou pensando, a solução é bem simples. Mas antes quero fazer um teste pra confirmar minha suspeita. Respondo sua pergunta, no mais tardar, amanhã pela manhã. :)
[]'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
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

\

Mensagem por Maligno »

FabioAugusto escreveu:o executavel PDV.EXE aborta antes mesmo de iniciar a tela principal!
O que será que estou fazendo de errado ?? vc pode me dar um help??
Acredito que você não está fazendo nada de errado. Ocorre que, como o utilitário WAPI.EXE é embutido no programa, dentro da definição da função que extrai esse arquivo, o Clipper, por alguma estranha razão que ainda não decifrei, está tendo dificuldade em manipular esses dados. Algum problema em relação à montagem do segmento de dados que contém esse binário. Não dá problema algum na linkedição. Mas o programa aborta. Aconteceu comigo também. E parece estar relacionado ao tamanho do programa Clipper. Quando chega a certo tamanho, o problema ocorre. Se você fizesse um programa bem pequeno, não haveria qualquer problema. Resumidamente, é isso.

A solução é simples: não utilizar o WAPI.EXE embutido, mas distribuí-lo manualmente, junto com seu programa. Mas isso implica em utilizar alguns procedimentos. Siga os passos:

1) Crie a função abaixo em qualquer parte do seu programa. Conselho: coloque no fim do seu PRG principal. Assim ficará mais fácil encontrá-la novamente para removê-la, quando esse problema for resolvido.

Código: Selecionar todos

function WAPI2File()
return .F.
2) No seu PRG principal, antes de usar a WAPI, execute EraseWAPI(.F.). O valor default[/b] já é falso. Se você não alterou isso, pode pular esse passo. Esse SET serve para dizer à LIB que o utilitário deve ser apagado após o uso. Portanto, isso precisa ser falso.

3) Você precisa dizer à LIB onde gravou o WAPI.EXE para que ela possa executá-lo. Para isso existe um outro SET: WAPIExeDir(<path>). Pode ser um drive de rede, caso precise. Novamente, use o PRG principal para isso. É mais prático.

Esses três passos simples devem resolver. Aliás, explicando o passo 1: a função sugerida, minimalista, só servirá para se sobrepor à que existe na LIB, evitando que ela seja linkada ao seu programa, o que evitará o aborto do mesmo. Uma vez que a função original não mais existirá, o WAPI.EXE não poderá mais ser extraído da LIB. Por isso você precisará distribuí-lo manualmente.

Diga-nos depois se a receita deu certo. :)
[]'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!
FabioAugusto
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 05 Mai 2008 16:57

Re: WAPI v1.03 - Funções da API do Windows

Mensagem por FabioAugusto »

Maligno, obrigado pela ajuda! vou fazer uns testes e lhe falo se deu certo.

Abs.

Fabio A França :D
FabioAugusto
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 05 Mai 2008 16:57

Re: WAPI v1.03 - Funções da API do Windows

Mensagem por FabioAugusto »

Maligno, apos as alterações que vc me recomendou o sistema funcionou normalmente, obrigado!

Só uma duvida, a matriz gerada pelo Getprinters() é uma matriz dinâmica correto ?

Então, pelos exemplos que vi aqui postado não funcionaria com o achoice(), Exemplo :
LOCAL aPrn:= GetPrinters()
nPrn:= ACHOICE(2,1,maxRow()-1,maxCol()-1,aPrn,.T.,,nPrn)
a matriz aPrn é dinamica, então o achoice() não a lê.

Acabei fazendo dessa maneira:
Local aPrn := GetPrinters()
Local aPrnx := {}
for q=1 to len(aPrn)
aadd(aPrnx,aPrn[q,2])
if aPrn[q,1] ;nPrn := q ; endif
next
nPrn:= ACHOICE(11,11,15,59,aPrnx,.T.,,nPrn)

e assim funcionou!

Abs, e mto obrigado!

Fabio A. França :)Pos :{
Responder