He cambiado la dirección de mi blog

Éste es ya un vestigio del pasado. Visita
http://www.tiendadeultramarinos.es
y actualiza tus marcadores.

4 de julio de 2006

Modificar controlador del teclado

Llevaba un tiempo queriendo realizar un cambio en mi teclado. Cuestión de teclas y caracteres. Básicamente era cambiar el guión corto (trigésima acepción) que aparece junto al shift derecho por la raya (acepción 12ª) o guión largo. El porqué lo explicaré en otro momento. El caso es que tras un tiempo preguntándome cómo hacerlo, por fin lo conseguí la semana pasada y hoy me he decidido a compartirlo.

Yo sabía que al pulsar una tecla de tu teclado, éste envía un código llamado SCAN al ordenador. Una vez llega a éste, un programa llamado controlador del teclado convierte el código SCAN a un código ASCII o Unicode, y ése es el carácter que se imprime por pantalla. De modo que lo que yo quería hacer tenía que ser posible.

Había quién me decía que para cambiar la configuración del teclado, que cambiase el idioma. Claro, muy fácil, así la tecla ñ me imprimirá un ;. Pero eso no es lo que quiero, yo quería mantener mi configuración de teclado español, pero modificar únicamente el guión.

Mediante el registro de Windows localicé la ubicación de la libreria con las configuraciones de idioma, de modo que únicamente tenía que abrir la del castellano y modificarla a mi gusto. Pero claro, ponte tu a desensamblar, o lo que sea con una libreria, modificarla y volverla a compilar. Iba a ser un trabajo de chinos. De chinos con grandes conocimientos en informática.

Pues el caso es que tras buscar un poco por internet, di con un programa que ofrece Microsoft llamado Keyboard Layout Creator (MKLC), el cual era justo lo que necesitaba. En la misma página de MS puedes descargártelo, pero pide que antes instales la Windows Genuine Advantage (WGA), lo cual es una putada gorda. Para el que no lo sepa la WGA es una autentificación de que tu sistema operativo es legal y que has pagado tu licencia. Si no registras tu Windows en línea, al cabo de unos días dejará de funcionar. Y bueno, esto... no es que mi Windows sea pirata, no vayan a pensar mal, pero es que... ehhmmm... no me apetece instalar la WGA, ¡sí, eso es! No tengo ganas de instalar la WGA y registrarme en línea y todo ese embrolo. Por suerte la red es amplia y en seguida localicé una web desde la que descargarlo. Incluso un enlace para descargarlo directamente de Microsoft, sin la WGA.

Una vez instalado en el sistema es totalmente sencillo e intuitivo. Aparece un teclado en pantalla con todos los caracteres que escribiría si pulsases las teclas sin más —al comienzo está en blanco— y unas casillas para marcar si estuvieras pulsando shift, ctrl, alt gr, o si estuviese activo el Caps Lock. Sólo puedes trabajar con el teclado alfanumérico y el separador de decimales del tecládo numérico. Las teclas de función, cursores, y numéricas no se pueden modificar. Pero bueno, no se echan de menos.

El programa te permite cargar un archivo de configuración que ya tengas por ahí creado o cualquiera de los teclados instalados en el sistema. Incluidos los nuevos que hayas creado previamente y hayas instalado. Por lo tanto para empezar, lo mejor es cargar el teclado español o el que utilices habitualmente.

Cuando cargas cualquier fichero, te aparecen inmediatamente todos los caracteres que se imprimirían si pulsases la combinación de teclas indicadas. Para modificar o crear una nueva, únicamente hay que pulsar sobre la tecla correspondiente —marcando si se desea alguna tecla de estado— y escribir el carácter que desees. Generalmente serán caracteres que no podrás escribir con el teclado, por lo que tendrás que introducirlos mediante su código Unicode —no acepta ASCII—. Para ello, en lugar de buscar tablas por internet, lo más sencillo es ir a la propia que trae Windows integrada en su sistema: Inicio>Todos los programas>Accesorios>Herramientas del sistema>Mapa de caracteres.

Una vez finalizados todos los cambios que se quieran realizar, hay que acudir a Project y testear el Layout. Pruebas que todo funcione como deseas y lo validas en el mismo menú. Al validarlo se crea un log con avisos y errores. Los avisos que me han salido a mi son de que algunos caracteres —como el o el .— aparecen mediante más de una combinación de teclas, o que la tecla entre shift izquierdo y la z no existe en algunos teclados. Pero bueno nada grave, en el mio sí que están.

Desde las propiedades del menú Project es posible modificar el nombre y añadir algo de información. El último paso es crear DLL y el paquete de instalación (Build DLL and Setup Package). Lo cual nos generará la librería correspondiente y un fichero de instalación que nos la integrará en nuestros sistema operativo.

Imagino que llegados a este punto hay que reiniciar el sistema —no recuerdo si lo pide explícitamente el paquete de instalación—. El siguiente paso es decirle a nuestro sistema que tiene que utilizar nuestra nueva libreria para el teclado. Para esto hay dos formas:

  1. La limpia, y como se supone que debe de hacerse:
    Panel de control > Configuración regional y de idioma > pestaña Idiomas > Detalles > Agregar
    Y en Distribución del teclado/IME seleccionar la que hemos creado.
  2. Directos al registro, y a lo burro:
    Ejecutar > Regedit
    HKEY_LOCAL_MACHINE > SYSTEM > ControlSet001 > Control > Keyboard Layout > DosKeybCodes
    Buscas la etiqueta sp (que es la que está instalada en nuestro ordenador) y vemos que se corresponde con 000040A
    HKEY_LOCAL_MACHINE > SYSTEM > ControlSet001 > Control > Keyboard Layouts > 000040A
    En Layout File tenemos la libreria que está asignada a esta configuración, en este caso kbdsp.dll. Lo que hice la primera vez fue modificar ese registro por milayout.dll y reiniciar. Y tiraba fino oye.
Ahora acabo de dejarlo todo como estaba y hacerlo por la primera opción, para no perder el español predeterminado.

Una vez hecho todo esto, reiniciamos, seleccionamos nuestro teclado de la barra de idioma, la mandamos a tomar por culo —para que no moleste ocupando sitio en nuestra barra de tareas— y tenemos nuestro teclado listo para escribir a nuestro gusto.

Próximamente ¿Por qué quería cambiar el guión por la raya? y ¿Qué configuración tiene ahora Ender en su teclado?

Extra: Otra explicación y un programa similar

3 comentarios:

v i r i d i a n a dijo...

No me etraña que te pegaras veinte minutos escribiendo como un poseso...(en lugar de estudiar operativos). Yo creo que a tus lectores les interesará también saber por que quisiste cambiar la rayita por raya mediana ;)

Anónimo dijo...

Creo que esto les servira a mas de alguno, a mi no me instalo la distribuci{on IME ni de latinoamerica ni la de españa (D:) esto porque instale win xp pro x64 que como todos sabemos esta en ingles, luego le puse el parche de idiomas en español pero la distribucion del teclado segu{ia sindo de EEUU, lo que hici fue editar el registro para agregar la distribucion de latinoamerica y española, para ahorrarles tiempo les mando el archivo ya editado .reg para que lo descargen aca va http://rapidshare.com/files/60494561/teclado.reg espero les sirva... bye

Matias dijo...

gracias anonimo por la clave de registro, funiono muy bien!

Salu2