Estate atento ya que en esta reseña encontrarás la respuesta que buscas.Esta reseña fue aprobado por nuestros especialistas para asegurar la calidad y veracidad de nuestro contenido.
Solución:
En breve:
flecha izquierda: 37
flecha arriba: 38
flecha derecha: 39
flecha hacia abajo: 40
No hay códigos ascii reales para estos keys como tal, deberá verificar los códigos de escaneo para estos keysconocido como hacer y romper key códigos según la información de helppc. La razón por la que los códigos suenan ‘ascii’ es porque el key los códigos son manejados por la antigua interrupción del BIOS 0x16 y la interrupción del teclado 0x9.
Normal Mode Num lock on Make Break Make Break Down arrow E0 50 E0 D0 E0 2A E0 50 E0 D0 E0 AA Left arrow E0 4B E0 CB E0 2A E0 4B E0 CB E0 AA Right arrow E0 4D E0 CD E0 2A E0 4D E0 CD E0 AA Up arrow E0 48 E0 C8 E0 2A E0 48 E0 C8 E0 AA
Por lo tanto, mirando los códigos que siguen a E0 para el Make key código, como 0x50, 0x4B, 0x4D, 0x48 respectivamente, ahí es donde surge la confusión al mirar key-códigos y tratándolos como ‘ascii’… la respuesta es no como varía la plataforma, varía el sistema operativo, bajo Windows tendría virtual key código correspondiente a esos keysno necesariamente los mismos que los códigos de BIOS, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT.. esto se encontrará en el archivo de encabezado de su C++ windows.h, según recuerdo en la carpeta de inclusión del SDK.
No confíes en el key-códigos para tener los mismos códigos ‘idénticos ascii’ que se muestran aquí, ya que el sistema operativo reprogramará todo el código del BIOS en lo que el sistema operativo considere adecuado, naturalmente, eso sería de esperar porque, dado que el código del BIOS es de 16 bits, y el sistema operativo (hoy en día es de 32 bits modo protegido), por supuesto esos códigos de la BIOS ya no serán válidos.
Por lo tanto, la interrupción del teclado original 0x9 y la interrupción del BIOS 0x16 se borrarán de la memoria después de que el BIOS la cargue y cuando el sistema operativo en modo protegido comience a cargarse, sobrescribirá esa área de la memoria y la reemplazará con sus propios controladores de modo protegido de 32 bits para tratar con esos códigos de escaneo del teclado.
Aquí hay una muestra de código de los viejos tiempos de la programación de DOS, usando Borland C v3:
#includeint getKey(void) int key, lo, hi; key = bioskey(0); lo = key & 0x00FF; hi = (key & 0xFF00) >> 8; return (lo == 0) ? hi + 256 : lo;
Esta rutina en realidad, devolvió los códigos para arriba, abajo es 328 y 336 respectivamente (no tengo el código para izquierda y derecha en realidad, ¡esto está en mi antiguo libro de cocina!) El código de escaneo real se encuentra en el lo
variable. Las teclas que no sean AZ, 0-9, tenían un código de escaneo de 0 a través del bioskey
rutina…. se agrega la razón 256, porque la variable lo
tiene código de 0 y el hi
la variable tendría el código de escaneo y le agregaría 256 para no confundirlo con los códigos ‘ascii’…
Realmente, la respuesta a esta pregunta depende del sistema operativo y el lenguaje de programación que esté utilizando. No existe un “código ASCII” per se. El sistema operativo detecta que golpeas una flecha key y desencadena un evento que los programas pueden capturar. Por ejemplo, en las máquinas Windows modernas, obtendría un evento WM_KEYUP o WM_KEYDOWN. Normalmente pasa un valor de 16 bits para determinar qué key fue empujado
Acuérdate de que te damos el privilegio añadir una puntuación si acertaste tu contratiempo en el momento concreto.