|
Responder ![]() |
Autor | |
Marciana ![]() Asiduo ![]() ![]() Unido: 20/Septiembre/2004 Localización: Argentina Estado: Sin conexión Puntos: 316 |
![]() 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
|
|
![]() |
|
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: 12529 |
![]() |
¿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: 3663 |
![]() |
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: 12529 |
![]() |
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: 13819 |
![]() |
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: 316 |
![]() |
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
|
|
![]() |
|
Marciana ![]() Asiduo ![]() ![]() Unido: 20/Septiembre/2004 Localización: Argentina Estado: Sin conexión Puntos: 316 |
![]() |
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
|
|
![]() |
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 |