Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como Capturar teclas solo dentro del formulario?

Estas en el tema de Como Capturar teclas solo dentro del formulario? en el foro de Visual Basic clásico en Foros del Web. Primero un saludos amigos del Foro, Tengo una duda, utilizo este codigo que encontre por la web para capturar la pulsacion de una tecla para ...
  #1 (permalink)  
Antiguo 24/02/2010, 17:28
Avatar de smoke001  
Fecha de Ingreso: enero-2008
Mensajes: 83
Antigüedad: 16 años, 10 meses
Puntos: 1
Como Capturar teclas solo dentro del formulario?

Primero un saludos amigos del Foro,

Tengo una duda, utilizo este codigo que encontre por la web para capturar la pulsacion de una tecla para hacer X funcion...

en un timer:

Código vb6:
Ver original
  1. Dim i As Integer
  2.    
  3.     For i = 0 To 255
  4.         [COLOR=SeaGreen]'Consultamos el valor de la tecla mediante el Api. _
  5.         Si se presionó devuelve -32767 y mostramos el valor de i[/COLOR]
  6.         If GetAsyncKeyState(i) = -32767 Then
  7.        
  8.         If i = 113 Then Form1.Show 1
  9.  
  10.     End If
  11.        
  12.     Next i

El caso es que me sirbe para que cuando aprieten X tecla me abra el formulario pero captura a todo momento hasta con tener la aplicacion minimizada...

no se como hacer para que solo sea cuando este "activo" el formulario inicial..

he probado desactivando el timer y en el evento activate lo activo otravez pero no logro desactivarlo de nuevo cuando este no este en pantalla... nose si me explico


muchas gracias..!!
  #2 (permalink)  
Antiguo 24/02/2010, 18:06
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 3 meses
Puntos: 29
Respuesta: Como Capturar teclas solo dentro del formulario?

Puedes usar los eventos gotfocus y lostfocus para saber cuando el form recibe o pierde el enfoque y así activar y desactivar tu timer.

De todos modos lo mas normal es usar, en lugar de getasynckeystate, algún evento del form como keypress o keydown para controlar las teclas que se pulsan, aunque estos eventos ignoran algunas teclas, pero suelen ser suficiente.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #3 (permalink)  
Antiguo 27/02/2010, 13:00
 
Fecha de Ingreso: enero-2010
Ubicación: SJM Lima - Peru
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Como Capturar teclas solo dentro del formulario?

hola te recomendaria buscar la propiedad del Form KEYPREVIEW = TRUE (es importante para q funcione)por defecto se encuentra en false sirve pa que reciba primera las pulsaciones de las teclas(F1,F2.... F12 y demas que son ASCII A,B,C...Z) es muy parecido al KEY_PRESS no de los botones:
y despues busques el evento del FORM keyUp y copies ahi tus
debug.print KeyCode ' aqui sabras que codigo pulsaste o mejor dicho que tecla
Select Case KeyCode
Case 64 'pulso @
msgbox "ud pulso la @ por favor no lo haga jajajajaj"
Case 65 'codigo ASCII A
CmdPressA_Click
Case 66 'codigo ASCII A
CmdPressB_Click
.......
End Select
y al identificar que tecla pulsas podras programar su evento o procedimiento
Cualquier duda aqui esta mi correo [email protected] Lima-Peru

Etiquetas: teclas, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:21.