GARANTIR DESCONTO

Fórum Travar o teclado - TEF #182999

19/09/2003

0

Bom dia a todos.

Estou em fase de homologação do TEF e preciso travar o teclado enquanto a impressora imprime e destravá-lo assim que ela parar de responder. Peguei este código aqui no clube:

No OnCreate Do form principal: Application.OnMessage:=TravaTecla;
Procedure TForm1.TravaTecla(var msg:TMsg;var Handled:boolean);
msg.wParam:=0;

Realmente ele trava, mas como fazer para Destravar ? Se possível, enviem o código dentro de uma procedure

Grato pela atenção.


Turbo Drive

Turbo Drive

Responder

Posts

19/09/2003

Nigro

Pode parecer muito óbvil, nunca tentei isso mas será que com parâmetro 1 daria certo?


Responder

Gostei + 0

19/09/2003

Turbo Drive

Eu já tentei colocar ´msg.wParam := 1´ e não deu certo. Alguém tem alguma sugestão ou outra forma de travar o teclado que não seja no evento onkeydown ou onkeypress ?

Grato pela atenção.


Responder

Gostei + 0

19/09/2003

E_gama

Tem uma função em User32.DLL que faz isso. O problema é que bloquea o mouse também...

Segue exemplo...

procedure BlockInput(ABlockInput : boolean); stdcall; external ´USER32.DLL´;

implementation

...

  BlockInput(True);  //--> Bloqueia

...  

  BlockInput(False); //--> Desbloqueia




Responder

Gostei + 0

19/09/2003

Turbo Drive

Muito massa mermo, a função do BlockInput. Valeu pela dica. O meu único receio é se todo windows vem com esta dll e se vier, esta função tb estará sempre presente ?
É por isso que ainda gostaria de saber como destravar com aquela função que postei anteriormente.
Mesmo assim obrigado.


Responder

Gostei + 0

20/09/2003

Kroki

Gostei tambem do Blockinput,mas não consegui destravar o teclado em rede...


Responder

Gostei + 0

01/10/2003

Aroldo Zanela

Colegas,

A API BlockInput bloqueia o teclado e mouse geral, mas desbloqueia imediatamente aos pressionar Ctrl + Alt + Del. Idem para as rotinas em assembly do colega Kroki.

De acordo com o manual de certificação Interface Padrão/TEF-VISANET Versão 5.1 - Julho/2003, basta atribuir false para a propriedade enable do form no início da impressão e true ao final.


Responder

Gostei + 0

03/10/2003

Turbo Drive

Caro Aroldo,
O esquema de desativar o form pode ser falho, pois assim que o GP das operadoras termina o serviço nós temos que recuperar o foco do cursor, o que é inclusive um dos testes.

O que as operadoras querem é que limpemos o Buffer do teclado enquanto a impressora está em execução. Vc teria alguma idéia de como fazer isso ?


Responder

Gostei + 0

03/10/2003

Aroldo Zanela

[quote:f750d3459f=´Turbo Drive´]Caro Aroldo,
O esquema de desativar o form pode ser falho, pois assim que o GP das operadoras termina o serviço nós temos que recuperar o foco do cursor, o que é inclusive um dos testes.
[/quote:f750d3459f]

A recomendação anterior é da própria VISANET. Quanto ao retorno do Foco, vc pode utilizar o SetForegroundWindow(Form.Handle);.
O que as operadoras querem é que limpemos o Buffer do teclado enquanto a impressora está em execução. Vc teria alguma idéia de como fazer isso ?


Para limpar o buffer:

var
  Msg: TMsg;
begin
  while PeekMessage( Msg, 0, WM_KEYFIRST, WM_KEYLAST,
                     PM_REMOVE or PM_NOYIELD ) do;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar