Substituto p/ KbFake.exe
Moderador: Moderadores
-
Maurício Elias
- Usuário Nível 3

- Mensagens: 304
- Registrado em: 12 Mai 2005 08:48
Substituto p/ KbFake.exe
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
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
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
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
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
xHarbour.org + Hwgui + PostgreSql
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.
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!
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

- Mensagens: 304
- Registrado em: 12 Mai 2005 08:48
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
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
xHarbour.org + Hwgui + PostgreSql
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.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.
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!
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!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
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.
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.
- rubens
- Colaborador

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

- Mensagens: 304
- Registrado em: 12 Mai 2005 08:48
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
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
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ê
"
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
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.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..
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.
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.
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.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...
[]'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!
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.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
[]'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!
