1. Este sitio usa cookies. Para continuar usando este sitio, se debe aceptar nuestro uso de cookies. Más información
    Descartar aviso

Duda Obtener código hexadecimal por pulsación de teclado / RESUELTO

Tema en 'Informática - Tecnología' iniciado por McClane, 8 May 2018.

  1. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Hola foreros!! Vengo esta vez con una pregunta para nota, de esas de, como diría El Gañán, de tener estudios. :D

    Estoy cacharreando con algo y necesito saber qué código hexadecimal obtengo con una pulsación de teclado... y me estoy volviendo loco. :( Las teclas que necesito con necesidad, valga la "rebuznancia" :LOL: son el cero numérico, intro (que no retorno) y asterisco numérico. Al principio creía que iba a ser sencillo, buscar una plantilla por internet de la imagen de un teclado, proceder, probar y liarme con un prototipo :LOL: pero me va a joder el invento. :( En cuanto a coger precisamente el cero numérico, el intro y no retorno y el asterisco numérico es por necesidad, porque no es la misma función el cero numérico que el cero alfabético, ni es la misma función el intro que el retorno. ;)

    Según me ha parecido ver por ahí varias veces, parece ser que el cero numérico es el 0x52, pero encuentro varias distribuciones y no sé ya de cuál fiarme. He probado todas y no funciona. Funcionar, funciona, pero me devuelve un paréntesis, una R, una L y como me descuide, me devuelve un microondas. :descojon:

    ¿Podéis echarme una mano a averiguar qué código hexadecimal representa a cada tecla de un teclado completo? ;)


    Saludos!!
     
    A alvaris le gusta esto.
  2. alvaris

    alvaris upsized Moderador Miembro del Club

    Registrado:
    3 Ene 2007
    Mensajes:
    20.164
    Me Gusta:
    21.548
    Ubicación:
    Pinto(Madrid)
    Modelo:
    M54b22/Passat
    para qué querrás eso... :descojon::descojon::descojon::descojon::descojon::descojon:
     
  3. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    :D Quiero, o quería hacerme una consola de mandos para usarla con un programa y así poder tener una botonera básica pero con funciones avanzadas, al poder presionar mayúsculas y hacer combinaciones. ;)
     
    A alvaris le gusta esto.
  4. MiguelX5

    MiguelX5 En Practicas

    Registrado:
    8 Feb 2017
    Mensajes:
    199
    Me Gusta:
    130
    Cuando dices que te devuelve un "parentesis" una "L" etc... quiere decir que no siempre te devuelve el mismo caracter? entiendo que lo estas mostrando recogiendo el valor en una variable e imprimiendola por pantalla, es decir, con código no?

    Si el valor que te devuelve es siempre el mismo, simplemente sería mapearlo tan cual en el código no haría falta saber su hexadecimal.

    Depende de como estés montando el aparato claro.
     
  5. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    No, siempre manda el mismo. Si se supone que es un intro, con algún código manda un paréntesis, con otro código una L mayúscula, con otro una P minúscula y así hasta aquí, que no logro identificarlo. Lo que hago es generar una pulsación de teclado a través del código hexadecimal que corresponde a esa tecla, pero no lo encuentro y preguntaba por alguna forma para averiguarlo, una aplicación cutre que te devuelva qué hexadecimal está usando. No me sirve el ASCII, solo el hexadecimal o el decimal. ;)

    Puedo mandar la letra directamente como pulsación o el número, pero si le digo que mande un cero, manda un cero alfabético y no un cero decimal. Si fuese por pijerío, pues podría callarme :LOL: pero en dicho programa, la función que quiero usar está en el cero decimal y no en el alfabético. Lo mismo pasa con intro y retorno y el asterisco, que el asterisco no es el mismo el del teclado numérico que el del alfabético. Por eso necesito estos códigos, porque no es por el caracter que pulsas, sino por la TECLA concreta que pulsas. ;)
     
  6. MiguelX5

    MiguelX5 En Practicas

    Registrado:
    8 Feb 2017
    Mensajes:
    199
    Me Gusta:
    130
    Si si, entiendo el problema, por eso te preguntaba como lo muestras, en que lenguaje lo estas haciendo? me da que estás recogiendo el código hexadecimal en una variable de otro tipo y al hacer la "transformación" te muestra caracteres extraños.

    Busca para el lenguaje que estes usando el cómo tratar codigos hexadecimales seguramente habrá ejemplos y así te mostrará lo que buscas. Tanto para mostrar en hexadecimal el caracter real pulsado como para transformar o enviar caracteres hexadecimales de forma precisa.

    Si estuvieras trabajando en C algo como esto te podría orientar
    https://www.includehelp.com/c/working-with-hexadecimal-values-in-c-programming-language.aspx
     
  7. pasko

    pasko En Practicas

    Registrado:
    21 Sep 2017
    Mensajes:
    140
    Me Gusta:
    70
    Modelo:
    F45 - R1200RS
    Hola.

    ¿Se trata de un teclado de ordenador (letras+números+funciones) o de un teclado de teléfono (0..9,*#)?
    ¿Cómo estás leyendo los datos que te da el teclado?

    Saludos.
     
  8. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Estoy en C y la línea de código es la siguiente:

    CODE, HTML o PHP Insertado:
    Keyboard.press (0x52);
    Puedes sustituir el 0x52 por '0' y te muestra un cero, pero no es el cero que necesito. :LOL: Si mal no recuerdo, ese cero es el 0x30, que es la tecla superior a la P, y no me sirve. Tal y como es el código, como puedes ver, no necesito "interpretar" el hexadecimal, porque se lo metes y él se lo gestiona, pero no quiere coger estas teclas, o es que estas teclas tienen otros hexadecimales que no son esos y me estoy volviendo gilipollas. :LOL:
     
  9. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Sí, de un teclado completo con teclado numérico. Las pulsaciones, aunque algunas requieren de modificadores como control, esto no es un problema, sino dar, y nunca mejor dicho, "con la tecla correcta". :LOL: Estoy "viendo" el hexadecimal de plantillas que hay por internet, pero ninguna me ha funcionado. Aquí un ejemplo de plantilla, una de las tantas que he consultado:

    US_PC_keyboard_keycodes.png

    En este caso, el código que marca es el 0x64, y ese tampoco eso, y tampoco funciona el 0x24 para el asterisco ni el 0x5B para el intro. :metra:
     
  10. pasko

    pasko En Practicas

    Registrado:
    21 Sep 2017
    Mensajes:
    140
    Me Gusta:
    70
    Modelo:
    F45 - R1200RS
    Hola.
    Creo que no te sigo.... no me suena la función que utilizas en tu ejemplo: ¿Qué versión de lenguaje C utilizas y qué sistema operativo?
    La plantilla de teclado que pones como ejemplo parece más bien una lista ordenada de teclas.

    También podrías mostrar los códigos que te salen haciendo una prueba de las teclas que te interesan (independientemente de lo que digan las plantillas :)) y luego usarlos directamente. Por ejemplo, si el asterisco de la derecha te da un código 0xff.... pues utiliza ese código.;)
    Saludos.
     
  11. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Eso es lo que llevo preguntando desde el inicio del hilo, cómo obtener ese código hexadecimal para usarlo directamente. :LOL:

    El comando no se puede usar si no se incluye librería, que quedaría, a modo de ejemplo rápido, de la siguiente manera, omitiendo líneas que no son relevantes:

    CODE, HTML o PHP Insertado:
    #include <Keyboard.h> //Incluye librería del teclado
    
    Keyboard.begin();  //Inicia el módulo del teclado
    
    Keyboard.press (0x52); //Presiona la tecla 0x52 HEX
    La versión de C no la sé y el sistema operativo es indiferente, porque da las mismas pulsaciones en Windows y en Mac. ;)
     
  12. pasko

    pasko En Practicas

    Registrado:
    21 Sep 2017
    Mensajes:
    140
    Me Gusta:
    70
    Modelo:
    F45 - R1200RS
    Hola.
    Ya lo pillo. Prueba con getchar()
    Saludos.
     
  13. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Creo que no está disponible en la lista de comandos. Miraré a ver. ;)
     
    A pasko le gusta esto.
  14. i_minex

    i_minex Forista Senior

    Registrado:
    24 May 2005
    Mensajes:
    6.569
    Me Gusta:
    1.506
    Ubicación:
    Barcelona
    Modelo:
    320Cd / Z4
    Qué librería es esa de Keyboard.h?

    Quizá como te dicen no funciona como debería o el valor que pasas no es con el formato correcto.

    Con la información de la librería se podría saber como funciona.

    Un saludo ;)
     
  15. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Pues sí, sí reconoce el getchar(), aparece en naranja cuando lo escribes!! Ahora el tema es saber cómo usarlo y qué devuelve, porque no veo instrucciones de ese comando. :LOL:
     
  16. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    La predefinida. Esta mañana, en el descanso, he leído que posiblemente esa librería, aunque venga por defecto, esté limitada y he encontrado un enlace a GitHub donde parece ser que hay una librería mejorada. Me tocará ahora investigar. ;)
     
    A i_minex le gusta esto.
  17. radykal

    radykal En Practicas Miembro del Club

    Registrado:
    16 Dic 2007
    Mensajes:
    543
    Me Gusta:
    227
    Ubicación:
    Barcelona
    Modelo:
    335i e93
    Unete a BMW FAQ Club Unete a BMW FAQ Club Unete a BMW FAQ Club
    Última edición: 12 May 2018
    A pasko le gusta esto.
  18. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Pedazo de listado!! :amo2: Muchas gracias, y creo que el 0x60 no le había probado. :LOL: Esperaré a cuando pueda ir donde tengo el PC portátil para hacer pruebas porque aquí estoy con Mac. ;)
     
  19. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Pues ya he probado el cero numérico y sale el º, así que tampoco me sirve. Y estoy en Windows 7, así que tampoco me funciona. :(
     
  20. radykal

    radykal En Practicas Miembro del Club

    Registrado:
    16 Dic 2007
    Mensajes:
    543
    Me Gusta:
    227
    Ubicación:
    Barcelona
    Modelo:
    335i e93
    Unete a BMW FAQ Club Unete a BMW FAQ Club Unete a BMW FAQ Club
  21. SPTR

    SPTR Forista Legendario Moderador Miembro del Club

    Registrado:
    18 Ago 2005
    Mensajes:
    9.140
    Me Gusta:
    800
    Ubicación:
    X
    Dices que si lo pones 0 escrito hace el 0 alfanumérico, porque no buscas una tabla ascii, y lo haces con ALT+código ascii..., igual así te lo escribe como un string pero el adecuado. No sé, ni p*ta idea men.
     
    A pasko le gusta esto.
  22. SPTR

    SPTR Forista Legendario Moderador Miembro del Club

    Registrado:
    18 Ago 2005
    Mensajes:
    9.140
    Me Gusta:
    800
    Ubicación:
    X
  23. SPTR

    SPTR Forista Legendario Moderador Miembro del Club

    Registrado:
    18 Ago 2005
    Mensajes:
    9.140
    Me Gusta:
    800
    Ubicación:
    X
  24. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Esa es la primera opción que barajé y no acepta códigos con alternativa. De todas formas, aunque en el título no lo ponga, he conseguido resolverlo esta noche, por lo que luego lo cambiaré. Finalmente encontré otra librería compatibke con la Keyboard.h y ya funciona con más funciones que la original. ;)
     
  25. McClane

    McClane Moderador Informática Moderador Miembro del Club

    Registrado:
    20 Jul 2006
    Mensajes:
    35.869
    Me Gusta:
    11.432
    Ubicación:
    Getafe Madrid
    Modelo:
    2 E30, 1 E39
    Pues como digo, al final conseguí resolverlo. Al parecer la librería de origen tiene limitadas las teclas y las teclas de avance de página, retroceso, inicio, fin, etc y demás, sí funcionan, pero no el teclado numérico. Con otra librería consigo hacer funcionar TODO el teclado sin problemas y las primeras pruebas ya han salido bien paradas, por lo que ahora toca hacer un prototipo a ver si funciona. :LOL: La librería permite hasta "crear" un ratón y funciona incluso en BIOS, cosa que la de origen no lo hace. ;)
    Si eso me devuelve lo que ya había probado varias veces!! :LOL:
     
  26. SPTR

    SPTR Forista Legendario Moderador Miembro del Club

    Registrado:
    18 Ago 2005
    Mensajes:
    9.140
    Me Gusta:
    800
    Ubicación:
    X
    Vaya, pensaba que yo era la solución y lo único que hice es comerme un mojón

    Bueno, de todo se aprende.
    Que estarás haciendo por ahí mcclen.

    Yo me he convertido mi taladro de NiCD o mh no me acuerdo a litio con unas batt viejas de portátil y ahora necesito fabricar un medidor de carga con un amplificador operacional, un zener y unos divisores resistivos para ver cómo va la carga.

    Eso seguro que a tu te mola

    Tienes más peligro que Murdock en una central nuclear.