Mise à jour 2008-08-30 : Cette astuce a été sélectionnée par le magazine L'Ordinateur Individuel et publiée dans le numéro 208 (septembre 2008) page 136 comme astuce du mois.

Nostalgie, nostalgie... le DOS c'est toute ma jeunesse. Le manuel du MS-DOS 5.0 est d'ailleurs le premier livre d'informatique que j'ai lu. Même sous Windows, j'ai toujours systématiquement une fenêtre d'« invite de commandes » toujours ouverte. Et la première chose que je fais sur un nouveau PC Windows, c'est d'assigner le raccourci Ctrl+Alt+C à l'invite de commandes MS-DOS. La deuxième, c'est Ctrl+Alt+N pour le Bloc-Notes (N comme NotePad). Et la troisième, c'est d'installer mon fichier .INF qui ajoute une entrée Ouvrir un shell dans le menu contextuel de l'Explorateur Windows.

Alors de temps en temps je vais voir comment évoluent les articles de Wikipédia dédiés au MS-DOS pour vérifier qu'ils ne racontent pas trop de bêtises, les corriger à l'occasion, et éventuellement encore apprendre quelque chose. C'est donc dans la section Windows NT que j'ai vu quelques commandes que j'ai vu quelques commandes que j'ai voulu vérifier par l'expérience sur Windows Vista.

Microsoft Windows [version 6.0.6000]
Copyright (c) 2006 Microsoft Corporation. Tous droits réservés.

C:\Users\Dolmen>ver

Microsoft Windows [version 6.0.6000]

C:\Users\Dolmen>command /k ver

MS-DOS Version 5.00.500


C:\USERS\DOLMEN>

Rien de spécial jusque là.

C:\USERS\DOLMEN>cd 

Mais là, oh stupeur ! Pas moyen de taper un '\'. La combinaison de touches AltGr+8 ne fonctionne pas ! En fait, le clavier est en QWERTY dans COMMAND.COM !

En investiguant un peu plus, j'ai pu vérifier que ce sont tous les programmes pur MS-DOS qui ne tiennent plus compte de la configuration du clavier français mais utilisent au lieu de cela une configuration américaine du clavier. Par exemple debug.exe ou edit.com. Vous pouvez tester avec tous les .COM (ceux-là, contrairement aux .EXE, vous êtes sûrs que ce sont des programmes DOS) :

C:\Users\Dolmen>dir %windir%\System32\*.com
 Le volume dans le lecteur C s'appelle XXX
 Le numéro de série du volume est YYYY-ZZZZ

 Répertoire de C:\Windows\System32

02/11/2006  10:31            11 776 chcp.com
02/11/2006  09:09            50 648 COMMAND.COM
02/11/2006  10:32            13 824 diskcomp.com
02/11/2006  10:32            11 264 diskcopy.com
18/09/2006  23:43            69 886 edit.com
02/11/2006  10:32            35 328 format.com
02/11/2006  10:35            56 320 graftabl.com
02/11/2006  09:09            19 694 GRAPHICS.COM
02/11/2006  09:09            14 710 KB16.COM
02/11/2006  09:09             1 131 LOADFIX.COM
02/11/2006  10:32            25 088 mode.com
02/11/2006  10:32            20 992 more.com
02/11/2006  10:32            16 384 tree.com
02/11/2006  10:35             6 656 win.com
              14 fichier(s)          353 701 octets
               0 Rép(s)  VV VVV VVV VVV octets libres

Vous aurez peut-être noté la présence de KB16.COM qui semble une piste à explorer :

C:\USERS\DOLMEN>kb16 /?
Configures a keyboard for a specific language.

KEYB [xx[,[yyy][,[drive:][path]filename]]] [/E] [/ID:nnn]

  xx                      Specifies a two-letter keyboard code.
  yyy                     Specifies the code page for the character set.
  [drive:][path]filename  Specifies the keyboard definition file.
  /E                      Specifies that an enhanced keyboard is installed.
  /ID:nnn                 Specifies the keyboard in use.

C:\USERS\DOLMEN>chcp
Page de codes active : 850

C:\USERS\DOLMEN>kb16 fr,850 /E

C:\USERS\DOLMEN>

Voilà, c'est réparé... pour cette session ! Mais au prix de la perte de 6 Ko de mémoire conventionnelle (comparer avant et après avec mem /C). Et vous aurez noté que KB16.COM n'est pas traduit : Microsoft ne semble plus attacher autant d'importance à la traduction de ses produits.

Mise à jour 2008-10-20 : La solution ci-dessous est obsolète. J'ai trouvé la vraie solution au problème, bien plus simple. Sautez au commentaire 26.

Pour charger automatiquement KB16.COM dans les prochaines sessions, il faut ajouter l'appel dans %windir%\System32\autoexec.nt. Mais comme avec Vista, rien n'est simple en raison de la protection paranoïaque des commandes d'administration, voici la marche à suivre :

  1. Dans le menu Démarrer, Tous les programmes, Accessoires, cliquez avec le bouton droit sur Invite de commandes puis Exécuter en tant qu'administrateur.
  2. Chargez le clavier français et lancez edit.com :
    Microsoft Windows [version 6.0.6000]
    Copyright (c) 2006 Microsoft Corporation. Tous droits réservés.
    
    C:\Windows\system32>KB16 fr,850 /E
    
    C:\WINDOWS\SYSTEM32>edit autoexec.nt
    
    Pourquoi edit.com ? On aurait pu aussi utiliser le Bloc-Notes (notepad.exe). Sauf que l'on souhaite ici entrer des accents qui seront affichés dans la page de code du terminal, c'est à dire 850. Or le Bloc-Notes ne connaît que les encodages ANSI (cp1252), Unicode (ucs-2le), Unicode Big Endian (ucs2-be) et UTF-8.
  3. Tapez Ctrl+Fin et collez les lignes suivantes (pas avec Copy du menu Edit d'edit.com, mais avec Modifier, Coller dans le menu système de la fenêtre) :
    lh %SystemRoot%\system32\KB16 fr,850 /E
    if not errorlevel 1 echo Clavier français activé.
    
  4. Quittez en enregistrant : Alt+F, x, Entrée.