Substituto p/ KbFake.exe

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

Substituto p/ KbFake.exe

Mensagem por Maurício Elias »

Boa tarde pessoal.

Alguém conhece um substituto para o KbFake.exe , que habilita o uso de leitor de código de barras na serial ?
Acontece que no XP, qdo tento abrir o Sistema 2 vezes simultaneamente, o kbfake acusa erro na abertura da Com1.

Obrigado.

Maurício
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

olá Mauricio,
Primeiro pq deve ter duas vez o mesmo sistema aberto em uma mesma estação ? isso não parece meio certo...
Não conheço esse "KbFake.exe", mas acredito que vc só deve chamar ele no real momento que for usar leitor de codigo de barra. Explique melhor para serve esse KbFake.exe, quem sabe exista outras saidas sem usar esse .EXE
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
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 »

Mas o KBFake é um simulador de terceiros. O fabricante do leitor não disponibilizou o software apropriado? Aliás, tal software seria muito parecido com o KBFake.

De qualquer maneira, abrir duas instâncias do KBFake, em kernel NT, deve realmente dar esse tipo de erro. No Windows 98 não há problema, já que o KBFake é um TSR executado só uma vez e que pode ser aproveitado pelas demais sessões. Mas no XP cada instância é separada. Como só há uma porta serial X, vem o erro.

No próprio KBFake não dá pra fazer coisa alguma. Eu vi seu fonte (C), que é muito simples. Para contornar essa dificuldade e fazer uso de duas ou mais instâncias o programa precisaria de algumas modificações, pra depois ser compilado pra Windows console. Mas acho que não compensa. Até porque, fica a dúvida sobre a real necessidade de abrir duas instâncias do seu programa. Não é usual. :)
[]'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!
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

Mensagem por Maurício Elias »

Olá.

Na verdade, o cliente abre 2 programas distintos. Retaguarda e Vendas. E em ambos eu preciso da leitora serial. Só conheço esse KbFake prá ativar ela.
Já tentei ativar ele pelo ´Inicializar´ , mas tb ñ dá certo.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Bom como eu disse antes, não conheço esse tal de kbfake, mas se vc tiver o manual ou os protocolos de comunicação, talvez vc consiga subistituir usando comandos em clipper mesmo com a CA-TOOLS...de uma pesquisa sobre seu leitor e se aceita comunicaçõa direta....
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
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 »

Maurício Elias escreveu:Na verdade, o cliente abre 2 programas distintos. Retaguarda e Vendas. E em ambos eu preciso da leitora serial. Só conheço esse KbFake prá ativar ela.
Já tentei ativar ele pelo ´Inicializar´ , mas tb ñ dá certo.
Fazer isso pelo Clipper não daria certo. Afinal de contas, ainda seria necessário abrir a COM no programa, o que seria feito duas vezes, e isso não é possível. O que você pode tentar é pesquisar a Net pra ver se encontra um programa Windows que faça exatamente o mesmo que o KBFake. Aí sim você poderá instalá-lo no Iniciar. Seria o ideal.

Uma outra alternativa, se você entende de XHarbour, é fazer um programa que execute o mesmo trabalho. Daria certo também.
[]'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
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á

Mensagem por Pablo César »

Quando se fala em acesso a COM eu logo penso na melhor biblioteca que existe para Clipper que é a IOLIB.LIB. Tente descobrir o que essa KBFASE faz. Você Mauricio nos disse que na mesma estação é aberto dos aplicativos dos quais ele faz chamada a esse KBFAKE (o que representa um problema ser chamado duas vezes). Eu sugeriria que você crie uma nova função antes de chamar o KBFAKE e verifique se a COM ja foi aberta, daí não não libere para execução do KBFAKE, caso contrário permita a sua chamada.
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
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mensagem por rubens »

Mauricio envia esse arquvo para mim.. para fazer um teste... eu uso serial.com da sweda mas acredito que seja a mesma coisa.. eu só tive um problema que com o passar do tempo ele simplesmente para de funcionar no xp... mas aí eu vejo se é o mesmo programa e te envio o que tenho aqui.. mas acredito que para o que voce quer nao vai funcionar.. no windows 98 aceitava carregar um comando .com ou.exe na inicializacao.. entao qdo voce carregava ele já ficava aberto tanto para um aplicativo quanto para o outro..no xp nao sei como fazer para carregar na inicialização entao quando voce carrega o aplicativo tem que carregar o controlado do scanner tb. daí tem que fazer isso duas vezes e na segunda vai acusar que a porta já está aberta... ao menos que algum colega aqui saiba carregar um aplicativo na inicializacao para qdo voce entrar nos dois sistemas já estar aberto, nao vai ter jeito...
"Eu e minha casa servimos ao Senhor e você ???"
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 »

rubens escreveu:Mauricio envia esse arquvo para mim..
Pegue o EXE e o fonte C do meu site, clicando aqui.
no xp nao sei como fazer para carregar na inicialização
Aí só através de um programa windows funcionalmente equivalente, executado pelo "Inicializar" ou por meio de uma chave no Registry.
[]'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!
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

Mensagem por Maurício Elias »

Rubens, te mandei no hotmail...

É, vou tentar descobrir alguma coisa pelo fabricante, de repente, se tiver algum driver em win, já resolve né. Interessante é q vc consegue executar o kbfaze N vezes no mesmo prompt...

Abraços.

Maurício
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mensagem por rubens »

Mauricio...

Veja bem.. o programa que voce tem é bem parecido com o que eu tenho tô te enviando para voce avaliar.. ok

O problema é que o windows xp abres instãncias DOS separadas.. então se voce abre duas janelas dos, dois programas, os comandos e configurações que voce tem em uma nao vai ter na outra.. entao quando voce abre o PDV e carrega o programa do leitor.. ele abre a COM1, daí se voce abre o programa retaguarda como nao esta na mesma instancia do PDV ele vai ter que abrir a COM1 de novo mas aí ela já vai estar aberta.. a solução ao meu modo de ver é instalar o win98 e colocar o programa no autoexec.bat ou o que eu te enviei no config.sys.. daí quando voce entrar no seu programa o programa do scanner já foi carregado...
Se conseguir colocar na inicialização do XP tb resolve o problema, mas nao sei abrir programas na inicializacao do xp para ficarem residentes.. Sei que toda vez que entra no dos é como se ele tivesse reiniciando e criando uma nova instância..


Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mensagem por rubens »

Acredito que a questão e vc executar o aplicativo n vezes é porque o mesmo deve ter algum tipo de verificação se já está carregado na memoria e não tenta abrir a porta e novo...
"Eu e minha casa servimos ao Senhor e você ???"
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á

Mensagem por Pablo César »

rubens escreveu:quando voce abre o PDV e carrega o programa do leitor.. ele abre a COM1, daí se voce abre o programa retaguarda como nao esta na mesma instancia do PDV ele vai ter que abrir a COM1 de novo mas aí ela já vai estar aberta..
Se a execução do KBFAKE abre uma nova sessão, que é perfeitamente entendível, acho que teria outra solução sem a necessidade de instalar o WIN98.

Considerando esta situação:

1. É executado o sistema PDV
2. Dentro dele existe o chamado através do RUN o SWPRUNCMD
3. É executado o KBFAKE abrindo uma nova sessão
4. Se o FBFAKE foi carregado, utilize a função GETAPPSINFO() da WAPI do Maligno. Desta forma poderá saber se determinada sessão com nome KBFAKE no caso que a sessão esteja ainda aberta. Caso que a sessão em que é executado o FBFAKE é fechado imediatamente, então você poderia verificar se fica na memória do computador, pondendo utilizar o comando MEM /DEBUG > APPS.TXT direcionando para aquivo e daí então leia o arquivo através do VLIDO:=MEMOREAD e AT("FBFAKE",VLIDO) e não executar por segunda vez no caso.

Outra solução seria você criar um arquivo texto com isto indicando que já foi executado o FBFAKE e deletar tal arquivo quando seja finalizado o sistema PDV. Crie nome diferente para cada módulo que chama o FBFAKE. Se bem, que está sujeito a falhas este ultimo procedimento. Pois pode dar uma travada o micro e o arquivo ficar existente e daí não dá para chamá-lo após re-iniciar o micro. No entanto daria para fechar mais o cerco ao colocar no menú iniciar uma BAT que delete o arquivo indicador.

5. É fechada a sessão do sistema PDV ao finalizar normalmente

Eu acho que essas idéias poderão ser úteis em algo. Faça alguns testes Mauricio e nos comente.
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
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

rubens escreveu:Acredito que a questão e vc executar o aplicativo n vezes é porque o mesmo deve ter algum tipo de verificação se já está carregado na memoria e não tenta abrir a porta e novo...
No XP não adianta. Não é que ele vai verificar se existe uma outra instância dele mesmo. Eu li o fonte e não há essa verificação. É que no XP as sessões DOS são máquinas virtuais isoladas. Ao abrir a COM1 numa sessão, ela já ficará "presa" a essa sessão. Logo, na outra sessão o recurso aparece como "ocupado". Programa DOS não tem jeito. Não vai dar certo nunca. Tem que de ser um programa equivalente Windows. Aí pode-se colocá-lo no menu "Inicializar". Só que mesmo assim, ainda haverá outro inconveniente : o KBFake (for Windows) usará o buffer do teclado do Windows, o que logicamente poderá interferir em todos os programas que tenham entrada de dados via teclado.
[]'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 »

Pablo César escreveu:1. É executado o sistema PDV
2. Dentro dele existe o chamado através do RUN o SWPRUNCMD
3. É executado o KBFAKE abrindo uma nova sessão
Já não dá certo a partir daí. Executar o KBFake não faz abrir uma nova sessão. Ele executará na mesma sessão, sempre. Uma vez executado nesta sessão, não sei dizer o que poderá acontecer, mas deve ser uma entre duas opções: o programa executado vai travar o retorno à aplicação principal OU o programa simplesmente não ficará residente, pois para que isso acontecesse, ele teria de ser instalado ANTES da execução do programa.
[]'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!
Responder