|
|
|
|
|
Dicas
|
|
Visual Basic (Mouse/Teclado)
|
|
|
Título da Dica: Incompatibilidade do SendKeys com o teclado no W2K
|
|
|
|
Postada em 9/9/2003 por Ð@®l@n
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
|
|
|
|
|