El Metodo Key-Press no Captura todas las Teclas y Combinaciones

522 views
Skip to first unread message

Ivan Jaramillo Gonzalez

unread,
Mar 13, 2021, 11:47:58 PM3/13/21
to Comunidad de Visual Foxpro en Español
Hola Grupo, estoy tratando de programar una serie de secuencias de Teclado para automatizar determinadas funciones dentro de mi aplicativo, y me he dado cuenta que el evento Key-Press de la forma no captura todas las combinaciones de Teclado, ni las Teclas especiales como en donde se utiliza la tecla Ctrl ó la Tecla Alt, hay alguna restricción al respecto?, por ejemplo la Combinación Ctrl+P No la Captura, pero si lo hace Con Ctrl-H, alguna idea como solucionar esto?

Gracias por su Colaboración

Zarlu

unread,
Mar 14, 2021, 12:23:41 AM3/14/21
to Comunidad de Visual Foxpro en Español
Buenas noches Ivan!

Si retorna valores.
Para CTR-P=16

Checa así desde la ventana de comandos y presiona la combinación de teclas que deseas
CLEAR
? INKEY(5)
? LASTKEY()

Igual checa la ayuda de INKEY() para ver los valores devueltos

Podría ayudar si muestras el código que usas en el keypress

Suerte
zarlu
Chetumal, Quintana Roo, México

Antonio Meza

unread,
Mar 14, 2021, 1:54:31 PM3/14/21
to Comunidad de Visual Foxpro en Español
Uso el siguiente código en el evento KeyPress del formulario

IF nkeyCode = 16 AND nShiftAltCtrl = 2 && Ctrl+P
    ...
ENDIF

saludos
Antonio Meza

Antonio Lima

unread,
Mar 14, 2021, 2:00:51 PM3/14/21
to publice...@googlegroups.com
Hola a todos,

Me parece que si tú código está dentro de un do while, en lugar de usar inkey(), deberías usar lastkey ()

Si lo usas dentro del método del form, tienes que activar una propiedad del formulario, por eso es importante que digas cómo estás intentando capturar la tecla.

Un saludo

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/2a6f3a5e-1e3d-42c9-b71c-791404ed61a6n%40googlegroups.com.

Ivan Jaramillo Gonzalez

unread,
Mar 14, 2021, 2:41:47 PM3/14/21
to Comunidad de Visual Foxpro en Español
El Código del Evento Key-Press es el Siguiente

LPARAMETERS nKeyCode, nShiftAltCtrl
N_Key_Code = nKeyCode
N_Shift_Alt_Ctrl = nShiftAltCtrl
DO CASE
CASE N_Key_Code = 16 AND N_Shift_Alt_Ctrl = 2   && No Funciona
MessageBox('Menú Impresión')
CASE (N_Key_Code = 13 OR N_Key_Code = 09) AND _Screen.Var_Read = 'User_Password'
Var_00 = _Screen.Path_Screen_04+'User_Password.Value'
Admin_User(1,14) = &Var_00
Var_00 = _Screen.Path_Screen_04+'Ctrl_Accessos.Click'
&Var_00
CASE  N_Key_Code = -8
Var_00 = _Screen.Path_Screen_87+'Grupo_Seguridad_Usuario_Login.Visible'
Var_01 = _Screen.Path_Screen_87+'Grupo_Seguridad_Usuario_Login.SetFocus'
&Var_00 = .T.
&Var_01
CASE  N_Key_Code = 03
Var_00 = _Screen.Path_Screen_03+'Left'
Var_01 = _Screen.Path_Screen_03+'Top'
Var_02 = _Screen.Path_Screen_03+'Visible'
&Var_00 = 1272
&Var_01 = 648
&Var_02 = .T.
CASE  N_Key_Code = 08
IF _Screen.Ayuda_General_Aplicación = 'Sí'
ThisForm.Ayuda_Aplicativa_Pegassus
ELSE
MessageBox('Ayuda Aplicativa Nó Activada - Usuario Nó Autorizado a Ayuda en Linea')
ENDIF
CASE  N_Key_Code = 09
Var_00 = 'ThisForm.Ctrl_General_Aplicativo_Vertical.Opción_Menú_46.Click'
&Var_00
CASE  N_Key_Code = 12
Var_00 = 'ThisForm.Ctrl_General_Aplicativo_Vertical.Opción_Menú_49.Click'
&Var_00
CASE  N_Key_Code = 16
Var_00 = 'ThisForm.Ctrl_General_Aplicativo_Vertical.Info_Sessión.Click'
&Var_00
CASE  N_Key_Code = 18
Var_00 = 'ThisForm.Ctrl_General_Aplicativo_Vertical.Opción_Menú_48.Click'
&Var_00
CASE  N_Key_Code = 27
IF _Screen.Transacción_Sessión = ' '
ThisForm.RELEASE
ELSE
MessageBox('Transacción Activa PEGASSUS Nro. '+_Screen.Transacción_Sessión)
ENDIF
CASE N_Key_Code = 26
Var_00 = 'ThisForm.Pegassus.Graficación.Container1.Pageframe1.Divisas.Container2.Visible'
&Var_00 = .T.
CASE N_Key_Code = 32 AND _Screen.Ctrl_Espaciador = 'Nó'
IF _Screen.Pantalla_Activa = 'Tasas Cambiarias'
ThisForm.Ctrl_Tasas_Cambio.Procesar.Click
ENDIF
CASE  N_Key_Code = 133
_Screen.Ctrl_Salida = 'Nó'
Var_00 = _Screen.Path_Screen_65+'Left'
Var_01 = _Screen.Path_Screen_65+'Top'
Var_02 = _Screen.Path_Screen_65+'Visible'
Var_03 = _Screen.Path_Screen_65+'Identificador_Sessión_Pegassus.Value'
Var_04 = _Screen.Path_Screen_65+'Usuario_Activo_Registrado.Value'
Var_05 = _Screen.Path_Screen_65+'Maquina_Principal.Value'
Var_06 = _Screen.Path_Screen_65+'Grupo_Seguridad_00.Value'
Var_07 = _Screen.Path_Screen_65+'Grupo_Seguridad_01.Value'
Var_08 = _Screen.Path_Screen_65+'Fecha_Login_Pegassus.Value'
Var_09 = _Screen.Path_Screen_65+'Hora_Login_Pegassus.Value'
&Var_00 = 1026
&Var_01 = 0322
&Var_02 = .T.
&Var_03 = _Screen.Transacción_Sessión
&Var_04 = Admin_User(1,02)
&Var_05 = Datos_Login_Maquina(01)
&Var_06 = Admin_User(1,09)
&Var_07 = Datos_Login_Maquina(06)
&Var_08 = Ctrl_Fecha(Admin_User(1,24))
&Var_09 = Admin_User(1,25)
CASE N_Key_Code = 134
x_vardummy = BloqueoEquipo()
IF x_vardummy = 6
Thisform.Opción_Menú53.Click
ELSE
MESSAGEBOX("Opción De Bloqueo de Sesión Cancelada",0+64,"FACTORING : Continuación de Session" )
ENDIF
ENDCASE

Zarlu

unread,
Mar 14, 2021, 3:16:54 PM3/14/21
to Comunidad de Visual Foxpro en Español
Buenos días Ivan!
Quizá estás trabajando en modo diseño y con ShowWindow=0. Entonces hay conflicto con las teclas de VFP
Sin título.png

Prueba cambiando  ShowWindow o con el ejecutable

zarlu
Chetumal, Quintana Roo, México

Antonio Lima

unread,
Mar 14, 2021, 3:22:46 PM3/14/21
to publice...@googlegroups.com
Exacto,

He probado con el show window = 0  y no funciona.
luego he puesto show window = 2  y captura la tecla control+p

image.png
    

Ivan Jaramillo Gonzalez

unread,
Mar 14, 2021, 11:01:28 PM3/14/21
to Comunidad de Visual Foxpro en Español
Gracias Grupo, Porblema Resuleto

HernanCano

unread,
Mar 14, 2021, 11:15:59 PM3/14/21
to Comunidad de Visual Foxpro en Español
Qué bien, Zarlu.
Me gustaría saber más al respecto. Desde que conocí VFP no me han funcionado las "hot keys".
¿Hay algún doc al respecto?

Gracias por compartir.

Zarlu

unread,
Mar 15, 2021, 10:52:33 AM3/15/21
to Comunidad de Visual Foxpro en Español
Reply all
Reply to author
Forward
0 new messages