WAPI v1.05 - Funções da API do Windows
Moderador: Moderadores
- adilson
- 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 ???
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.
:{
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
- Pablo César
- 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 ???
Totalmente compatível.A WAPI.LIB do Maligno é compatível com Clipper 5.2e
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.E porque ao executar o PRINTFILE(), está dando erro undefined function DISKNAME
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.
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.
- filizola
- 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 ???
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)
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..."
Re: A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???
Sim. Tanto tem que essa tarefa faz parte da TODO list do projeto. É só uma questão de tempo.filizola escreveu:seria legal se pudessem ser removidas estas dependencias. tem como fazê-lo?
[]'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!
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!
- adilson
- 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 ...
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....
:{
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
Re: WAPI v1.03 - Funções da API do Windows
Bom dia amigos!
Malígno, não consigo acessar http://buzinello.com/download/wapi.zip.
Erro 404.
:|
[]´s
Netavin
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 !! "
" Sem saber que era impossível, foi lá e fez !! "
Já não é mais esse diretório há muito tempo. Agora é:
http://pub.buzinello.com/index.php?d=./ ... pper/libs/
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!
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!
Re: WAPI v1.03 - Funções da API do Windows.. a tela minimiza ...
É 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?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 ??
[]'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!
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!
- adilson
- 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
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...
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
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.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.
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.segundo o suporte do fabricante, a mesma alega que esta impressoras nao emulam TEXTOS MSDOS. isto sera Verdade??
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!
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

- Mensagens: 12
- Registrado em: 05 Mai 2008 16:57
WAPI v1.03 - Funções da API do Windows - não executa
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
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
Re: WAPI v1.03 - Funções da API do Windows
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!
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!
\
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.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??
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.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!
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

- Mensagens: 12
- Registrado em: 05 Mai 2008 16:57
Re: WAPI v1.03 - Funções da API do Windows
Maligno, obrigado pela ajuda! vou fazer uns testes e lhe falo se deu certo.
Abs.
Fabio A França
Abs.
Fabio A França
-
FabioAugusto
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 05 Mai 2008 16:57
Re: WAPI v1.03 - Funções da API do Windows
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 :{
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 :{
