Bloqueando o teclado

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

foxdata
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 10 Jan 2006 15:21
Contato:

Bloqueando o teclado

Mensagem por foxdata »

Pessoal estou homologando meu sistema no cartao de credito e preciso de uma função que bloqueie o teclado geral...alguem pode me ajudar??


Agradeço desde já
Jarbas
Usuário Nível 2
Usuário Nível 2
Mensagens: 82
Registrado em: 08 Dez 2005 17:48
Localização: Sao Paulo

Mensagem por Jarbas »

No site da SEVENPDV q é a empresa que faz a homologação tem um zip "desabilitar teclado" .

De uma olhada, caso vc nao encontre me mande seu e-mail que eu lhe envio .
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

seu programa é clipper-dos ? blinker?
Dércio_Luiz_Zanatta
Usuário Nível 3
Usuário Nível 3
Mensagens: 153
Registrado em: 11 Jan 2006 15:37
Localização: Ibirubá - RS

Mensagem por Dércio_Luiz_Zanatta »

Se o ECF for Bematech ou Daruma, tem uma função deles que faz isso pra vc...
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

se for clipper dos 5.2e + blinker 5 ou 7 tenho a solução
And
Usuário Nível 3
Usuário Nível 3
Mensagens: 163
Registrado em: 25 Set 2005 18:31
Localização: São Paulo/SP

Mensagem por And »

Mario,

Se puder poste a solução, pois ajudará a todos.

Abraços,
Anderson
Clipper 52e/Clipper 53b/Blinker 7/Vlib/Fglib/DBFNTX
_______________________________________________
Migrando para [x]Harbour 0.99.60 (SimpLex) + MiniGUI 1.2 Exp. (Build 22)
_______________________________________________
Assine o manifesto dos artistas pela preservação da amazônia.
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 »

Também seria interessante você Jarbas colocar o link onde se encontra essa solução. Porque pra mim, o site da SEVENPDV, não me leva nada e o outro também relacionado a essa empresa está com o link quebrado.

Também para o vosso conhecimento, parece que o Maligno ja manifestou a intenção de fazer uma função para este propósito com o 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.
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

Segue a solução:

Programa para compilar em xharbour

Obs:- dê o nome ao .prg de ashtrw.prg e assim será produzido um ashtrw.exe

Código: Selecionar todos

*************
Function Main
*************

ferase("travatec.txt")
ferase("ntravatc.txt")
ferase("finaliza.txt")
ferase("activa.txt")

while .t. 

 if file("travatec.txt") 
   ferase("travatec.txt")
   mHide()
   TravaTec(.t.) 
 end 

 if file("ntravatc.txt") 
   ferase("ntravatc.txt") 
   mShow()
   TravaTec(.f.)
 end 

 if file("finaliza.txt") 
  ferase("finaliza.txt")
  ferase("activa.txt")
  quit 
 end 

 if !file("activa.txt")
  fll := "1" 
  memowrit("activa.txt",fll) 
 end 

 inkey(0.5) // aguarda meio segundo
end

return nil


#pragma begindump
#include "windows.h"
#include "winable.h"
#include "hbapi.h"

HB_FUNC( TRAVATEC )
{
   BlockInput( hb_parl(1) );
}
#pragma enddump
// Fim do programa


// Início da função no seu programa dos+blinker
Function kbddesliga(_on_off)

fllkbd := "1"

@ 24,1
if _on_off == "T"
 if tef_produz == "S"
  memowrit("travatec.tmp",fllkbd)
  rename travatec.tmp to travatec.txt
 end
elseif _on_off == "F"
 if tef_produz == "S"
  memowrit("ntravatc.tmp",fllkbd)
  rename ntravatc.tmp to ntravatc.txt
 end
elseif _on_off == "X"
 memowrit("finaliza.tmp",fllkbd)
 rename finaliza.tmp to finaliza.txt
end
aguarda(1.5)
@ 24,1
return nil
// Final da função kbddesliga

//para chamar a função:
kbddesliga("T") para travar
kbddesliga("F") para destravar

//inicio da função aguarda
// -------->
Function aguarda(_temp)
_in := seconds()
while seconds() - _in < _temp
 var := inkey()
 if lastkey() > 0 .and. upper(chr(var)) == "Q"
  exit
 end
end
return nil
// final da função aguarda

// dentro de um .BAT você chamará o seu aplicativo assim:
echo off
cls
del activa.txt > nul
cls
pause
if not exist activa.txt cmd /c start /B ashTrw.exe > nul
cls

call seuaplicativo.exe


nota: o comando:
cmd /c start /B ashTrw.exe > nul

faz com que o seu aplicativo ashtrw.exe seja executado porém nenhum ícone será mostrado na barra de tarefas...

Abraços
Mário
Editado pela última vez por Pablo César em 24 Mai 2012 20:23, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Se alguem prescissar de alguma força para compilar no xharbour me avisa que damos um jeito....

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

Fiz uma alteração na função kbddesliga (aquela que vai no seu programa clipper+blinker)

Código: Selecionar todos

// Início da função no seu programa dos+blinker 
Function kbddesliga(_on_off) 

fllkbd := "1" 

@ 24,1 
if _on_off == "T" 
 memowrit("travatec.tmp",fllkbd) 
 rename travatec.tmp to travatec.txt 
elseif _on_off == "F" 
 memowrit("ntravatc.tmp",fllkbd) 
 rename ntravatc.tmp to ntravatc.txt 
elseif _on_off == "X" 
 memowrit("finaliza.tmp",fllkbd) 
 rename finaliza.tmp to finaliza.txt 
end 
aguarda(1.5) 
@ 24,1 
return nil 
// Final da função kbddesliga


Ainda uma outra coisa:
No final do seu programa clipper=dos você invoca:
kbddesliga("X")
aí a função kbddesliga grava o arquivo finaliza.txt, o astrw.exe percebe e se finaliza.

Abraços
Mário
Editado pela última vez por Pablo César em 24 Mai 2012 20:25, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
And
Usuário Nível 3
Usuário Nível 3
Mensagens: 163
Registrado em: 25 Set 2005 18:31
Localização: São Paulo/SP

Mensagem por And »

Valeu!!!

Abraço,
Anderson
Clipper 52e/Clipper 53b/Blinker 7/Vlib/Fglib/DBFNTX
_______________________________________________
Migrando para [x]Harbour 0.99.60 (SimpLex) + MiniGUI 1.2 Exp. (Build 22)
_______________________________________________
Assine o manifesto dos artistas pela preservação da amazônia.
Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

Mensagem por Mário Isa »

só mais 2 coisas:
1-no final eu chamei o programa de astrw.exe quando deveria ter chamado de ashtrw.exe
2-porque ashtrw.exe? Porque é um nome parecido com um dos programas que rodam junto do windows. Sabe o porque disso? Se vc colocasse o nome de trava.exe algum homologador espertinho poderia querer finalizá-lo com CTRL+ALT+DEL para ver se sua aplicação verifica isso e o re-executa.

Eu não tratei disso no meu programa.

Mas se vc quiser pode fazer o seguinte a cada momento em que vai bloquear:
1-deleta o arquivo activa.txt
2-verifica se ele existe
3-se se não existe é pq o ashtrw.exe não está ativo uma vez que ele a cada x segundos regrava o activa.txt e se não está ativo você pode reativá-lo utilizando-se do comando:
comanda := "cmd /c start /B ashTrw.exe > nul "
run (comanda)

4-se existe é pq ele está ativo, está tudo correto, pode prosseguir.

Abraços
Mário
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Bloqueando o teclado

Mensagem por Maligno »

Pablo César escreveu:o Maligno ja manifestou a intenção de fazer uma função para este propósito com o WAPI.
Não só uma intenção, mas já está planejado para o final do mês. Infelizmente, hoje em dia estou enroscado num sistema que precisou de uma grande atualização. Mas assim que terminar, volto ao WAPI, que aliás, acho bem mais divertido. :)))
[]'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á

Re: Bloqueando o teclado

Mensagem por Pablo César »

Jarbas escreveu:No site da SEVENPDV q é a empresa que faz a homologação tem um zip "desabilitar teclado" .

De uma olhada, caso vc nao encontre me mande seu e-mail que eu lhe envio .
Você poderia disponibilizá-lo aqui no fórum anexando-lo ?
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
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Bloqueando o teclado

Mensagem por alaminojunior »

Pablo César escreveu:Você poderia disponibilizá-lo aqui no fórum anexando-lo ?
Economizem o vosso tempo, pois é a função KBDDISABLE() da Catools. Devem ter colocado isso para uso no tempo do DOS.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Responder