COMO IMPEDIR QUE NUMLOCK SEJA DESATIVADA?

XYKOVIEIRA 06/07/2007 14:57:12
#225046
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.
Xyko.
NLSOLUCOES 06/07/2007 16:23:37
#225071
Resposta escolhida
Bom na BIOS tem como vc deixar ativo(ENABLE), óbviamente que se o usuário teclar para desativar ou ativar , não estará bloqueado a tecla NUM LOCK


USUARIO.EXCLUIDOS 06/07/2007 16:25:50
#225073
Minha opinião pessoal.
O usuário pode ativar ou desativar a tecla Num Lock de acordo com sua vontade ou costume na digitação de números.
Eu, por exemplo, uso sempre desativada, porque uso as teclas e PgUp and PgDn no teclado numérico muito mais do que os números. Quando vou teclar números dai ativo o Num Lock.
No seu caso, você tem uma textbox para digitação de um código onde são aceitos somente números, supondo ser sua textbox de nome txtCNPJ.
Use o Evento keyPress to form = true
Crie uma Funcao para o evento KeyPress da textbox como abaixo:

Private Sub txtCNPJ_KeyPress(KeyAscii As Integer)
' Premite somente entrada de valores numericos
' Valores Validos 0123456789. <backspace> e <del>
' Aceita Numeros
If (KeyAscii > 47) And (KeyAscii < 58) Then
Exit Sub
End If
' Aceita BackSpace, Tab, LineFeed e Enter
If (KeyAscii = 8) Or (KeyAscii = 9) Or _
(KeyAscii = 10) Or (KeyAscii = 13) Then
Exit Sub
End If
' Rejeita o Resto
KeyAscii = 0
End Sub


Desta forma se o usuário teclar números sem o Num Lock ativado nada vai acontecer na textbox.
At,
XYKOVIEIRA 06/07/2007 20:37:13
#225117
Nil, o problema é que, ao ligar o PC, a tecla já está ativada. Somente quando rodo algum aplicativo em que há form de entrada de dados, dá "tilt" e a p... da tecla NumLock de repente desativa, sem avisar...
De qualquer maneira, vou dar uma olhada no Setup da máquina (BIOS)...
Quanto à dica do Roberto, valeu... é que muitos usuários da antiga (como eu), insistem em utilizar o teclado numérico para entrar números. Como a disposição do teclado é a mesma utilizada em calculadoras, acaba que digitamos os números sem olhar no teclado, enquanto olhamos um documento 'x' com séries de números a digitar, numa folha de papel à esquerda do monitor. Sacou? Se for tentar fazer isso pelo teclado acima das letras, perco o maior tempão no registro dos dados... Independente destas considerações, sempre utilizo código (parecido) para restringir a entrada apenas a números, backspace, etc.
De qualquer maneira, fico grato pela colaboração dos amigos.
(só queria mesmo saber por que, antes de rodar um aplicativo 'x', verifico que a tecla NumLock está habilitada. Bastou entrar o aplicativo, para a desativação da tecla...).
t+ ...

Tópico encerrado , respostas não são mais permitidas