Página 1 de 1
Bloqueando o teclado
Enviado: 10 Jan 2006 15:23
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á
Enviado: 10 Jan 2006 16:25
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 .
Enviado: 12 Jun 2007 11:49
por Mário Isa
seu programa é clipper-dos ? blinker?
Enviado: 12 Jun 2007 11:52
por Dércio_Luiz_Zanatta
Se o ECF for Bematech ou Daruma, tem uma função deles que faz isso pra vc...
Enviado: 12 Jun 2007 12:17
por Mário Isa
se for clipper dos 5.2e + blinker 5 ou 7 tenho a solução
Enviado: 13 Jun 2007 00:42
por And
Mario,
Se puder poste a solução, pois ajudará a todos.
Abraços,
Enviado: 13 Jun 2007 04:53
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.
Enviado: 13 Jun 2007 12:36
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
Enviado: 13 Jun 2007 12:44
por sygecom
Se alguem prescissar de alguma força para compilar no xharbour me avisa que damos um jeito....
Abraços
Leonardo Machado
Enviado: 13 Jun 2007 22:21
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
Enviado: 14 Jun 2007 00:50
por And
Valeu!!!
Abraço,
Enviado: 14 Jun 2007 06:55
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
Bloqueando o teclado
Enviado: 14 Jun 2007 17:42
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.

))
Re: Bloqueando o teclado
Enviado: 08 Jun 2009 14:05
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 ?
Re: Bloqueando o teclado
Enviado: 08 Jun 2009 14:15
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.