WAPI v1.05 - Funções da API do Windows
Moderador: Moderadores
Gostaria de aproveitar para agradecer e parabenizar o Maligno (leia-se Benigno) pela ótima lib e pelo tempo gasto em ajudar aos colegas !
Valeuuuuuuuuuuuuuuuuuu !!!! :)Pos :{ -:]
Obrigado em nome de todos do fórum !
Marcelo
Valeuuuuuuuuuuuuuuuuuu !!!! :)Pos :{ -:]
Obrigado em nome de todos do fórum !
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
WAPI.LIB
Eu gostaria de exemplificar e espero não dar a impressão de ser grosseiro no exemplo por ser breve na idéia:Maligno escreveu:Não. O emulador tem de ser (e é) fiel ao alvo da emulação...
A impressão que eu tenho dessa emulação (mesmo sem conhece-la) é como um fusca rodar num free-way. A idéia é de passar que o fusca irá continuar sendo fusca porém andará que melhor performace num estrada boa que numa não asfaltada. Mas este assunto não deveria se extender, porque eu mesmo não conheço essa emulação, ora porque na minha máquina utilizo dois HDs (WIN98 num e WINXP no outro) e seleciono na hora de inicializar através do SETUP. Mas que há uma grande diferença na execução do aplicativo entre o WINXP e WIN98... há.
Tudo bem, porém está sujeito a ser driblado pelo usuário na hora de execução.Maligno escreveu:Porque? Basta executar o programa novamente, recolocando o título.
Eu até iria abrir mão, porque também acho que se usuário quer sacanear... também assim é demais !!!. Mas é que no WIN98 esta função não está funcionando corretamente. Ela as vezes funciona momentaneamente e mesmo ainda a sessão não te sido fechada, retorna o nome do título original. Eu poderia usar a função do Dave OL_95VMTITLE() que roda bem em 95 e 98. Porém... preciso saber a versão do WINDOWS. E essa outra questão (da versão do Windows) não é tão simples assim.Maligno escreveu:Ao executá-lo, o título é trocado. Ao encerrar e executar de novo o título retorna, como antes. Não é isso?
Existem vários motivos em que nos vemos com a necessidade de saber a versão do WINDOWS para trabalhar de forma diferenciada conforme cada versão. E a criação de uma função em C seria o mais recomendado, porque o uso do comando do sistema operacional VER, não funciona em todas a situações.
Por exemplo: se você criar um arquivo .BAT e colocar VER > VERWIN.TXT, e for executado... você verá que não conterá resultado alguna nesse arquivo (teste feito em WIN98). Porém se na linha de comando você digitar VER > VERWIN.TXT daí sim terá o conteúdo de acordo a versão do WINDOWS. Esquisito, não é ?. Também se for rodar o VER através do RUN e executar o programa irá criar o arquivo com a versão de emulação no WINXP (versao 5.00). Veja tópico dos nosso colegas: https://pctoledo.org/forum/viewto ... ao+windows
Isso me ocorreu uma vez e não conseguí reporduzir o mesmo caso e nem tentei mais (usando o APPTITLE). Eu tinha aberto duas sessões de PROMPT-MSDOS e quando accionei o gerenciador de tarefas vi que estava os dois PROMPT-MSDOS e mais uma tarefa com o nome que eu tinha dado para uma das janelas. Mas não abriu nenhuma janela extra, simplesmente foi uma traefa que inclusive não conseguí finalizar (tive que resetar).Maligno escreveu:Não estou entendendo mais nada. Quando isso ocorria, uma outra janela era aberta? Que função você utilizava no momento? A de troca de título?
Essa solução seria o WinFullScr() que você postou para WCARDOSO (sobre ICONE NO XP) ?. Mas lembre que a minha sugestão não seria alternar o modo de exibição através do WAPI (que acho isto muito mais dificil) e sim identificar se a sessão está em modo TEXTO ou JANELADO escrevendo o resultado num arquivo texto.Maligno escreveu:...utiliza uma interrupção chamada Multiplex, que não funciona em 32 bits... Postei o link para um colega
Maligno, quando você menciona: "Ela utiliza uma interrupção chamada Multiplex, que não funciona em 32 bits. Isso nem é mais problema." Você quer dizer que em WIN98 você conseguiria detectar se está em modo texto ?.
Bem me disculpe se estou um pouco (bastante) insistente. E espero ter respondido as suas dúvidas sobre as minhas colocações.
Um clip-abraço,
Pablo :)Pos
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
WAPI.LIB ==> COMANDO VER
Corrigindo... O que eu disse que ao rodar o VER dentro do arquivo BATCH, não daria certo. Não é assim. dá certo sim. O teste que eu fiz e não deu certo foi dentro de um BATCH mas com uma condição, daí sim não funciona. Para quem quer saber usei:
IF NOT EXIST C:VERWIN.TXT VER > C:VERWIN.TXT
Mas desta forma não funcina, cria arquivo mas em branco.
Desculpem o meu equivo.
Um clip-abraço
:xau
IF NOT EXIST C:VERWIN.TXT VER > C:VERWIN.TXT
Mas desta forma não funcina, cria arquivo mas em branco.
Desculpem o meu equivo.
Um clip-abraço
:xau
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Primeiro Gostaria de parabenizar o Maligno e a todos que estaum colaborando por essa otima ferramenta.......
Tche, atraves dessa WAPI.LIB eu consigo imprimir em impressoras USB ?? Se sim como faço isso....
?
Jah baixei o pacote jah dei uma olhada nos exemplos de impressão mas a unica coisa q consigo é enviar o arquivo para a fila de impressão....mas acreditem se quiser ele não imprime e nem sai da fila de impressão.
Jah toh passando a usar diversas das funções dessa LIB...como a do X das janelas,Titulo da Janela,Tela cheia e alguns Sons...
Mais uma vez parabens Maligno...por se dedicar a essa ferramenta.... -:] -:] -:]
Abraços
Tche, atraves dessa WAPI.LIB eu consigo imprimir em impressoras USB ?? Se sim como faço isso....
Jah baixei o pacote jah dei uma olhada nos exemplos de impressão mas a unica coisa q consigo é enviar o arquivo para a fila de impressão....mas acreditem se quiser ele não imprime e nem sai da fila de impressão.
Jah toh passando a usar diversas das funções dessa LIB...como a do X das janelas,Titulo da Janela,Tela cheia e alguns Sons...
Mais uma vez parabens Maligno...por se dedicar a essa ferramenta.... -:] -:] -:]
Abraços
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: WAPI.LIB
Tudo bem que não queira estender a discussão sobre emulação, mas apenas para deixar mais claro: os emuladores que existem (eu uso o VMWare) são fiéis a extremo. Se rodam Linux, o comportamento será de Linux, sem nada a mais nem a menos. No Windows 98 (com o XP como host) tudo funciona perfeitamente (com as devidas limitações naturais) como num Windows 98 real. A velocidade, claro, reduz-se um pouco. E para o seu caso, que utiliza dois HDs, se tiver um processador relativamente rápido, aconselho a utilização de um emulador. E não só para fins de teste, como normalmente é. Tenho também uma máquina XP emulada, que utilizo para visitar sites de cárater "duvidoso". Na eventualidade de alguma "contaminação" apenas gravo uma máquina "virgem" em cima da contaminada. É bem prático.Pablo César escreveu:A impressão que eu tenho dessa emulação (mesmo sem conhece-la) é como um fusca rodar num free-way.
Se esse era o problema, problema resolvido. Modifiquei o WAPI para informar os dados acerca da versão do sistema operacional. Com o switch "-GETWINDOWSINFO:<resultFile>" você obtém todas as informações necessárias. A função de abstração se chama GetWinInfo(). Leia o \WAPI\LIB\README.TXT na parte que se refere às funções do diretório \LIB\OS. Agora a função SetAppTitle() testa a plataforma em operação. Se for kernel NT, ela utiliza o WAPI, da mesma forma como estava fazendo até agora. Porém, se não for NT, ele passa a utilizar a função OL_95AppTitle(), da OSLib que, evidentemente, terá de ser incluída no seu script de linkedição. Fiz uma nova versão do demo UNIQUE.EXE. Testei no meu Win98 virtual e funcionou corretamente.Mas é que no WIN98 esta função não está funcionando corretamente. Ela as vezes funciona momentaneamente e mesmo ainda a sessão não te sido fechada, retorna o nome do título original. Eu poderia usar a função do Dave OL_95VMTITLE() que roda bem em 95 e 98. Porém... preciso saber a versão do WINDOWS. E essa outra questão (da versão do Windows) não é tão simples assim.
Existem vários motivos em que nos vemos com a necessidade de saber a versão do WINDOWS para trabalhar de forma diferenciada conforme cada versão. E a criação de uma função em C seria o mais recomendado, porque o uso do comando do sistema operacional VER, não funciona em todas a situações.
Código exemplo de uso da função GetWinInfo():
Código: Selecionar todos
#include "macros.ch"
WAPIExeDir(".") // extrai WAPI.EXE para a pasta corrente
EraseWAPI(_kTRUE) // função nova: se TRUE, o WAPI.EXE será
apagado depois de utilizado.
clear
aInfo := GetWinInfo()
? "Platform: " + aInfo[1]
? "ID......: " + aInfo[2]
? "Pack....: " + aInfo[3]
? "Version.: " + aInfo[4]
?
/*
Saída para o meu XP real
---------------------------------
Platform: NT
ID......: Windows XP Professional
Pack....: Service Pack 2
Version.: 5.1.2600
Saída para o Windows 98 virtual
---------------------------------
Platform: 9X
ID......: Windows 98 SE
Pack....: A
Version.: 4.10.67766446
*/Eu só comentei a respeito desta função porque foi esta cujo código você postou.Mas lembre que a minha sugestão não seria alternar o modo de exibição através do WAPI (que acho isto muito mais dificil) e sim identificar se a sessão está em modo TEXTO ou JANELADO escrevendo o resultado num arquivo texto.
Sinto muito, mas não foi isso o que eu quis dizer. Quanto ao problema que eu disse estar resolvido, eu quis dizer sobre o caso da comutação para tela cheia através da função WinFullScr(). Não tem nada a ver com checagem de modo.Maligno, quando você menciona: "Ela utiliza uma interrupção chamada Multiplex, que não funciona em 32 bits. Isso nem é mais problema." Você quer dizer que em WIN98 você conseguiria detectar se está em modo texto ?.
Teste a nova versão da LIB. Aliás, já vá direto para o teste com o demo UNIQUE. Acho que agora vai dar certo. Mas atente para um detalhe: no Windows 98 o título da aplicação é prefixado com a string "Prompt do MS-DOS - ". Resolvi isso modificando o bloco de código que faz a pesquisa na matriz de títulos que o UNIQUE obtém. Leia o fonte se tiver dúvida.
Relembrando os links:
http://buzinello.com/download/wapi.zip
http://buzinello.com/download/wapi_demo.zip (UNIQUE)
[]'s
Maligno
http://www.buzinello.com/prg
Sim, é possível. Mas apenas no modo RAW (você é quem deverá formatar o texto). Testei com uma HP LaserJet 1022 USB. Para fazer isso é muito simples. Direcione sua impressão para um arquivo e execute a função de impressão. Supondo que seu arquivo se chama REPORT.TXT:sygecom escreveu:Tche, atraves dessa WAPI.LIB eu consigo imprimir em impressoras USB ?? Se sim como faço isso....?
Código: Selecionar todos
if PrintFile("HP LaserJet 1022","REPORT.TXT","TITULO NO SPOOLER")
? "Impressão (modo RAW) encaminhada para o spooler.
?
quit
end
? "Houve um erro qualquer..."
? "Basta verificar o retorno da função WAPIError()."
?Código: Selecionar todos
set date british
set century on
PrintFile("#,"REPORT.TXT")Estranho. Infelizmente não consegui desligar o redirecionamento automático para o spooler, para imprimir diretamente para a impressora. Nem acho vantagem, mas para efeito de teste apenas. Tentou em outra máquina?Jah baixei o pacote jah dei uma olhada nos exemplos de impressão mas a unica coisa q consigo é enviar o arquivo para a fila de impressão....mas acreditem se quiser ele não imprime e nem sai da fila de impressão.
Já fico feliz de saber que está aproveitando. Aliás, falando em som, está aí uma coisa que não gostei muito. Não foi possível tocar um WAVE em modo assíncrono. O retorno ao Clipper só ocorre depois do som terminar de tocar. Para sons curtos o problema não chega a incomodar tanto. Mas quando a duração aumenta muito, fica meio chato. Pra resolver isso, vou ter que criar um modo de operação diferente para o WAPI. É uma mudança meio radical. Vou precisar de um tempo maior.Jah toh passando a usar diversas das funções dessa LIB...como a do X das janelas,Titulo da Janela,Tela cheia e alguns Sons...
[]'s
Maligno
http://www.buzinello.com/prg
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Buenas...
Obs: o que seria impressão em MODO RAW
No exemplo Abaixo o arquivo vai para a impressora HP-PSC-1410 diz que esta imprimindo mas não imprime nd e não aceita cancelar a impressão da impressora.(Peguei o exemplo abaixo no PRINT1.PRG)
Obs.:
Esse Exemplo Abaixo nem se quer aparece na Impressora o arquivo !!!!
Referente ao SOM vc tem toda a razão ele retarda os sistema na hora da execução do som....mas no meu caso eu toh usando somente uns sons pequenos e não esta atrapalhando em nd......
Abraços e No que eu poder Ajudar prende o grito.....e mais uma vez parabens !!!
Tche, tentei de tudo que é jeito....mas nem com reza braba o arquivo vai para a fila de impressão.....abaixo segue um exemplo de como eu faço hj nas impressora matricial...Sim, é possível. Mas apenas no modo RAW (você é quem deverá formatar o texto). Testei com uma HP LaserJet 1022 USB. Para fazer isso é muito simples. Direcione sua impressão para um arquivo e execute a função de impressão. Supondo que seu arquivo se chama REPORT.TXT:
Código: Selecionar todos
EXEMPLO 01
SET DEVICE TO PRINT
IF NA TELA="S"
SET PRINT TO USB.TXT
ELSE
SET PRINT TO LPT1
ENDIF
@ prow()+1,00 SAY "IMPRIMINDO"
@ prow()+1,00 SAY "IMPRIMINDO"
@ prow()+1,00 SAY "IMPRIMINDO"
SET PRINTER TO
set device to screen
NETCANCEL("LPT1")
IF TELA="S"
EDICAO("USB.TXT") // VISUALIZAR O ARQUIVO TEXTO NO VIDEO
ENDIF
returnObs: o que seria impressão em MODO RAW
No exemplo Abaixo o arquivo vai para a impressora HP-PSC-1410 diz que esta imprimindo mas não imprime nd e não aceita cancelar a impressão da impressora.(Peguei o exemplo abaixo no PRINT1.PRG)
Código: Selecionar todos
FUNC TESTE
local cFile := UniqFName(WAPITmpDir())
local cBuff
local nRet
cPrtName="HP1410"
set date british
set century on
cRptTitle="clipper.report@"+DtoC(Date())+","+Time()
PRIVATE cRptFile:="USB.TXT"
WAPIError(_kERROR_NONE)
if cPrtName=_kVOID .or. cRptFile=_kVOID .or. !File(cRptFile)
WAPIError(_kERROR_PARAMETERS)
return _kFALSE
end
if RunWAPICmd("-PRINT:"+Quote(cPrtName )+_kARGS_SEP+;
Quote(cRptFile )+_kARGS_SEP+;
Quote(cRptTitle)+_kARGS_SEP+;
Quote(cFile ) )
if !ReadRetFile(cFile,@cBuff)
return _kFALSE
end
end
nRet := Val(cBuff)
WAPIError(nRet)
return (nRet=_kERROR_NONE)
Esse Exemplo Abaixo nem se quer aparece na Impressora o arquivo !!!!
Código: Selecionar todos
PrintFile("#","USB.TXT")Abraços e No que eu poder Ajudar prende o grito.....e mais uma vez parabens !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
É quando o conteúdo é transmitido sem que seja feita qualquer alteração por parte do dispositivo que o transmite.o que seria impressão em MODO RAW
Pelo que entendi o arquivo vai para o spooler, mas a impressora não dá sinal de vida. Se for isso, o trabalho do WAPI está sendo feito como esperado. O problema está em passar do spooler para a impressora. Daí eu não sei o que dizer. Você pôde testar em outra máquina?No exemplo Abaixo o arquivo vai para a impressora HP-PSC-1410 diz que esta imprimindo mas não imprime nd e não aceita cancelar a impressão da impressora.(Peguei o exemplo abaixo no PRINT1.PRG)
Bom, se não vai para o spooler, aí sim há um erro. Tentou pegar uma lista de impressoras instaladas? Use a função GetPrinters() para uma lista completa e GetDefPrinter() para saber qual está configurada como default.Esse Exemplo Abaixo nem se quer aparece na Impressora o arquivo !!!!Código: Selecionar todos
PrintFile("#","USB.TXT")
Aliás, qual Windows você está usando? Nos meus testes usei o XP Pro e tudo funciona corretamente. As funções contidas na LIB funcionaram. Assim, procure evitar adaptá-las para seus testes. Você pode acabar esquecendo alguma coisa e elas podem deixar de funcionar. Ao invés isso, apenas chame-as como indicado: PrintFile("HP1410","USB.TXT"), por exemplo. Aliás, um lembrete: não se incomode em remover os espaços entre nomes de impressoras. O WAPI não se perderá nisso.
[]'s
Maligno
http://www.buzinello.com/prg
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Buenas...
No Final da Tarde eu volto e falo aqui como foi os teste em outra maquina com outra impressora !!!
Abraços !!!
Posso sim....vou agora a tarde em um cliente e já testo por lah...Você pôde testar em outra máquina?
Peguei a lista de Impressoras e coloquei num DBF deu tudo certo....consegui achar a impressora padrão....mas igaul não funciona quando mando imprimir pelo comando PrintFile("cPrtName","USB.TXT")Bom, se não vai para o spooler, aí sim há um erro. Tentou pegar uma lista de impressoras instaladas? Use a função GetPrinters() para uma lista completa e GetDefPrinter() para saber qual está configurada como default
Eu toh usando o Windows XP-Pro.Aliás, qual Windows você está usando?
Obrigado pelo Lembrete.....eu já tinha visto no README...mas é que eu Tirei os espaço em branco para Testar mesmo......não querendo duvidar do WAPI.LIB mas....a Anciedade de ver funcionar é grande....hehehehe........ Aliás, um lembrete: não se incomode em remover os espaços entre nomes de impressoras. O WAPI não se perderá nisso.
No Final da Tarde eu volto e falo aqui como foi os teste em outra maquina com outra impressora !!!
Abraços !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Acho que você quis dizer: PrintFile(cPrtName,"USB.TXT"), sem as aspas, não é?Peguei a lista de Impressoras e coloquei num DBF deu tudo certo....consegui achar a impressora padrão....mas igaul não funciona quando mando imprimir pelo comando PrintFile("cPrtName","USB.TXT")
Tente também PrintFile(GetDefPrinter()[1],"USB.TXT"), que tem o mesmo efeito (pra mim, pelo menos) que PrintFile("#","USB.TXT"). Aliás, o efeito é o mesmo, mas os caminhos são diferentes.
[]'s
Maligno
http://www.buzinello.com/prg
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Desculpa me passei nas aspas estou fazendo conforme esta acima e não teve jeito !!!Acho que você quis dizer: PrintFile(cPrtName,"USB.TXT"), sem as aspas, não é?![]()
Tche...realmente não sei o que esta acontecendo mas fiz desse outro modo e tb..não deu certo....acho que pode ser algo aqui na minha maquina com essa impressora....(NO WINDOWS FUNCIONA TUDO CERTO),.agora a tarde toh indo em um cliente e vou testar de tudo que é jeito lah !!! Mas caso não de certo por lah eu não vou me descançar em quanto não ver isso funcionando....desde já agradeço pelo sua nobre paciencia e desculpa alguma coisa !!Tente também PrintFile(GetDefPrinter()[1],"USB.TXT"), que tem o mesmo efeito (pra mim, pelo menos) que PrintFile("#","USB.TXT"). Aliás, o efeito é o mesmo, mas os caminhos são diferentes.
Abraços !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Maligno
Toh no meu cliente e aqui tem uma Epson LX-300 , aqui funcionou perfeitamente no modo abaixo:
Agora no modo mais simples que é chamando a função PrintFile(GetDefPrinter()[1],"USB.TXT") ou PrintFile(cPrtName,"USB.TXT") não tem jeito...mas isso não é problema pq peguei a função TESTE e fiz dela padrão nas impressão do meu sistema......até aqui sem stress....agora me diz uma coisa....não querendo ser chato..mas existe alguma possibilidade de imprimir em modo CONDENSADO pela WAPI.LIB 
Abraços......e Obrigado por Tudo !!! -:] -:] -:]
Toh no meu cliente e aqui tem uma Epson LX-300 , aqui funcionou perfeitamente no modo abaixo:
Código: Selecionar todos
FUNC TESTE // IMPRIMIR EM USB
local cFile := UniqFName(WAPITmpDir())
local cBuff
local nRet
SELE 1
USE C:\IMP ALIAS IMP SHARED // ARQUIVO ONDE ESTA GRAVADO A IMPRESSORA PADRÃO
SELE IMP
cPrtName=IMP
set date british
set century on
cRptTitle="clipper.report@"+DtoC(Date())+","+Time()
PRIVATE cRptFile:="USB.TXT" // CAMINHO DO ARQUIVO
WAPIError(_kERROR_NONE)
if cPrtName=_kVOID .or. cRptFile=_kVOID .or. !File(cRptFile)
WAPIError(_kERROR_PARAMETERS)
return _kFALSE
end
if RunWAPICmd("-PRINT:"+Quote(cPrtName )+_kARGS_SEP+;
Quote(cRptFile )+_kARGS_SEP+;
Quote(cRptTitle)+_kARGS_SEP+;
Quote(cFile ) )
if !ReadRetFile(cFile,@cBuff)
return _kFALSE
end
end
nRet := Val(cBuff)
WAPIError(nRet)
return (nRet=_kERROR_NONE)Abraços......e Obrigado por Tudo !!! -:] -:] -:]
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Que cois mais esquisita. Um nome de impressora é sempre um nome de impressora. Não importa se o nome vem de uma função ou de um DBF. Se for o nome certo, tem que imprimir. Você tentou ver no seu cliente qual é o resultado da função GetDefPrinter()? Aliás, qual é o nome da impressora?Agora no modo mais simples que é chamando a função PrintFile(GetDefPrinter()[1],"USB.TXT") ou PrintFile(cPrtName,"USB.TXT") não tem jeito...
Tecnicamente sim. Mas eu não quero vincular o WAPI ao código de nenhuma impressora. Senão acabaria virando gambiarra. O melhor seria fazer uma LIB à parte, para abstração dos comandos de impressão. Nada difícil.existe alguma possibilidade de imprimir em modo CONDENSADO pela WAPI.LIB
[]'s
Maligno
http://www.buzinello.com/prg
O que você quer dizer com isso? Você está tentando usar no DOS puro?NO WINDOWS FUNCIONA TUDO CERTO
[]'s
Maligno
http://www.buzinello.com/prg
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Desculpa.....falha minha....eu quiz dizer q para eu imprimir fora do meu sistema em CLIPPER tudo Imprime certinho.....ex: arquivos em EXCEL,WORD e ETC...a impressora funciona perfeitamente...O que você quer dizer com isso? Você está tentando usar no DOS puro?
Estranho mesmo !!! Mas acredito que a questão não esta no nome da impressora......estou pegando o nome da impressora e a porta do resultado de GETPRINTERS() e gravando num DBF soh para ter cadastrado as impressora do windows no meu sistema em CLIPPER....Obs:A Impressora no meu cliente é uma LX-300.Que cois mais esquisita. Um nome de impressora é sempre um nome de impressora. Não importa se o nome vem de uma função ou de um DBF. Se for o nome certo, tem que imprimir. Você tentou ver no seu cliente qual é o resultado da função GetDefPrinter()? Aliás, qual é o nome da impressora?
Tche, por exemplo no meu caso tenho relatorios que vão alem das 80 colunas e mando imprimir no condensado(EM IMPRESSORA LX-300) para sair tudo nos conforme.....não querendo torrar sua paciencia...existe alguma maneira de eu poder resolver essa questão de impressão condensado usando a WAPI.LIB ex : gera um arquivo RTF ou WORD jah na fonte correta para imprimir pequeno e depois enviar o arquivo para o SPOOLER....vc sugere alguma coisa.....Tecnicamente sim. Mas eu não quero vincular o WAPI ao código de nenhuma impressora. Senão acabaria virando gambiarra. O melhor seria fazer uma LIB à parte, para abstração dos comandos de impressão. Nada difícil.
Mais uma vez Obrigado.....mas vc esta colaborando e muito a todos aqui no forum......
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql

