Pregunta

¿Hay una manera de programación averiguar qué tipo de teclado de un ordenador tiene (es decir, donde se encuentran las llaves, y qué teclas adicionales están presentes en las ubicaciones)?

Un poco error es aceptable, si el teclado es muy no estándar, pero en general, el punto es el de construir un teclado en pantalla-como aplicación que puede dibujar dinámicamente la disposición del teclado en la pantalla, con una alta precisión.

¿Fue útil?

Solución

No existe un mecanismo por el cual un teclado puede indicar a Windows lo que su aspecto físico como el diseño. Fácil de ver con la versión de Windows de un teclado en pantalla, osk.exe. Parece ser capaz de adivinar el factor de forma de la máquina (ordenador portátil vs escritorio), pero en mi ordenador portátil que no coincide con el diseño del teclado.

Use el esquema de osk.exe como una plantilla para que nadie pueda quejarse de que la suya no coincide también.

Otros consejos

cuando se conecta a un ordenador, teclados envía "códigos de escaneado" en el sistema operativo. en las ventanas, códigos de exploración se convierten después en las teclas virtuales (un mapeo de hardware independiente del teclado) y luego a personajes reales.

MapVirtualKeyEx() de la API de windows le permite traducir entre los códigos de exploración, teclas virtuales y personajes. también debe ser capaz de decir si una clave es no-existente.

junto con GetKeyboardLayout() que le indica los keybaord está activo en cualquier punto en el tiempo (distribución del teclado puede ser diferente para diferentes aplicaciones en ejecución), debe permitir que le permite construir un mapa bastante exacto del teclado.

De todos modos, echar un vistazo a la keyboard input section of the MSDN

Voy a añadir que todos los teclados tienen casi el mismo diseño. aunque no hay manera de saber dónde una clave se encuentra físicamente, es probable que pueda adivinar por el código de exploración y el conocimiento básico de sus propios teclados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top