USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Por que a tecla NumLock desliga?
ChicoVieira
CRUZEIRO
SP - BRASIL
ENUNCIADA !
Postada em 06/07/2007 16:53 hs            
Olá. Tenho reparado que, em alguns projects criados, ao testar o executável, a tecla NumLock desliga sozinha, impedindo a digitação de números pelo teclado da direita. Não sei porque a tecla desativa... Em algumas inputbox que requerem a entrada de números, o usuário digita, p.ex., 56 no teclado numérico e confirma com <Enter>. Todavia, estando desativado esse controle, se o usuário não perceber, obterá uma resposta não esperada do programa...
Tem como ativar esse controle? Como fazer? (já tentei diversas opções que encontrei por aí, com códigos extensos em módulos e chamadas por funções, sem resultado concreto...). Haverá algum jeito deixar essa tecla ativada, quando for carregado um form de entrada de dados? Ou, talvez, reformulando a pergunta, como impedir a desativação dessa tecla no carregamento do form?
Agradeço se algum "Expert" puder ajudar.
Chico.
   
SergioC
ORLÂNDIA
SP - BRASIL
ENUNCIADA !
Postada em 06/07/2007 18:07 hs            
 
Foi relatado na Web que o SendKeys pode apresentar algumas incompatibilidades com o teclado no Windows 2000. Alguns relatos contam que o teclado chega a travar diversas vezes durante o dia, obrigando o usuário a desconectar e reconectar o teclado.

Para resolver o problema podemos substituir a instrução sendkeys pela API PostMessage. Esta API pode substituir o SendKeys, gerando uma mensagem do Windows para nosso form como se uma determinada tecla houvesse sido pressionada.

Veja a declaração desta API :

Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd as long, byval wMsg as Long, byval wParam as Long, Iparam as Any) as Long

Precisaremos também de constantes contendo o código de algumas teclas. Vamos fazer o clássico exemplo de troca de ENTER por TAB :

Public Const WM_KEYDOWN = &H100
Public Const VK_TAB=&h9

E nos eventos de tratamento de tecla :

if keyascii=13 then
    retval=postmessage(me.hwnd,WM_KEYDOWN,VK_TAB,0)
    keyascii=0
end if
 
Tive alguns problemas com o SendKey que foram resolvidos qdo.troquei pelas instruções acima.
 
Boa Sorte
 

Abraços, Emoções

Sérgio Coelho

 

TÓPICO EDITADO
 
Deivinho
não registrado
ENUNCIADA !
Postada em 18/02/2008 08:22 hs   
Oi, so teim Uma maneira de resolver seu Problema.
abri o regedit
siga os seguintes passos.
HKEY_USERS/DEFAULT/CONTROL PANEL/KEYBOARD
Na janela do lado altere o seguinte Valor "InitialKeyboardIndicators" de "0" para "2".
Bom espero Ter te Ajudado.....!



   
Marcelo
não registrado
Postada em 29/10/2023 11:47 hs   
Vlw Deivinho, 2023 seu metodo funcionando
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página