Que tal vicbit,
He estado revisando información de cómo podemos detectar si el teclado se encuentra presente en nuestro sistema. Se me ocurren dos opciones:
1.- Mediante la función Query Input Device.vi verificar que cuando existe un teclado conectado, nos generé un elemento en el arreglo correspondiene. Cuando no existe un teclado, no debe generar ningún elemento. Podríamos verificar cuántos elementos tiene el arreglo y en base a este número definir si existe o no un teclado conectado.
2.- La segunda opción que se me ocurre utilizar la librería user32.dll mediante la función GetKeyboardType. De acuerdo a la descripción de la función, el retorno de la misma puede viariar entre 1 y 7 correspondiente al tipo de teclado conectado al sistema. En caso de error (por ejemplo que no exista un teclado) el retorno es cero. Te comparto el siguiente link correspondiente a esta función:
GetKeyboardType function
Porfavor revisar esta información y cualquier detalle quedo al pendiente. Exito en el desarrollo de tus aplicaciones.
Saludos!
Antonio S.
Applications Engineer - NI Mexico