chequear teclado numérico |
Responder |
Autor | |
Marciana
Asiduo Unido: 20/Septiembre/2004 Localización: Argentina Estado: Sin conexión Puntos: 323 |
Tema: chequear teclado numérico Enviado: 14/Febrero/2021 a las 22:41 |
Estimados
¿Hay alguna forma de chequear y/o bloquear el teclado numérico? Tengo una aplicación en producción (desarrollada en Access 2016 y corre sobre windows 10). Los usuarios me dicen que sin que se den cuenta se desactiva el teclado numérico y eso produce errores porque, por ejemplo, les cambia el registro que están operando. En mi escenario de desarrollo he notado que esto sucede cuando la aplicación dispara un error. No encontré información al respecto. Gracias. M
|
|
Cordialmente, Marciana
Saludos desde la Patagonia, Argentina |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14027 |
Enviado: 15/Febrero/2021 a las 08:49 |
¿Hay algún SendKeys de por medio?
|
|
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3865 |
Enviado: 15/Febrero/2021 a las 09:02 |
Hola Marciana.
Se que no es correcto dar la solución hecha, pero como me interesaba a mi mismo he buscado un poco y esto es lo que he encontrado En un módulo pon lo siguiente Public Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Function GetNumlock() As Boolean GetNumlock = CBool(GetKeyState(vbKeyNumlock) And 1) End Function Sub DetectarTecladoNumerico() If GetNumlock() Then MsgBox "¡ACTIVO!" Else MsgBox "¡Inactivo!" End If End Sub con DetectarTecladoNumerico haces la prueba para ver si está activo o no Ah, si te fijas en la declaración de la función Public Declare PtrSafe Function Es para 64 bits, si lo quieres en 32 bits quita PtrSafe y déja la declaración así: Public Declare Function
|
|
El Búho es un pajarraco
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14027 |
Enviado: 15/Febrero/2021 a las 10:01 |
Ya que estamos, hay que empezar a acostumbrarse a diseñar para 32/64 indistintamente para ello lo mejor es declarar las funciones de esta forma:
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14746 |
Enviado: 15/Febrero/2021 a las 10:22 |
Yo estoy con Mihura: el SendKeys es el que dispara el "tema".
recuerdo este tema de unos 4 años atrás. La causa del problema era un SendKeys y la solución fue cambiar al de WScript, tal como me dijo entonces Mihura: Dim ws As Object Set ws = CreateObject("WScript.shell") ws.SendKeys "{f1}" Set ws = Nothing |
|
Marciana
Asiduo Unido: 20/Septiembre/2004 Localización: Argentina Estado: Sin conexión Puntos: 323 |
Enviado: 15/Febrero/2021 a las 18:27 |
Sí hay un sendkeys. Voy a reemplazarlo, al activar un formulario enviaba un F9 para refrescar el contenido. Voy a utilizar el que propuesto. Gracias
También probé la solución de Xavi y funciona muy bien. Muchas gracias Pero me queda una consulta: Estimo que no existe un evento que se ejecute cuando cambia el teclado numérico entre bloqueado y activado. Se me ocurre utilizar en cada formulario el evento asociado a bajar una tecla. Pero, ¿si el cambio no sucede por accionar una tecla? Sigo pensando. Muchas gracias, Ibarluz (cómo te atreves a decirle pajarraco al Búho!!!), Mihura y Xavi. Por ahora sigo pensando....
Editado por Marciana - 15/Febrero/2021 a las 18:38 |
|
Cordialmente, Marciana
Saludos desde la Patagonia, Argentina |
|
Marciana
Asiduo Unido: 20/Septiembre/2004 Localización: Argentina Estado: Sin conexión Puntos: 323 |
Enviado: 21/Febrero/2021 a las 18:42 |
Implementé el procedimiento de Ibarluz y funciona. No tuve más reclamos de usuarios. Se puede cerrar el hilo. Gracias a todos! M
|
|
Cordialmente, Marciana
Saludos desde la Patagonia, Argentina |
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |