Olivier Mengué – Code & rando - Tag - DOS2024-03-29T14:14:50+01:00urn:md5:57e646ab8ca85028168daaaa985aa995DotclearLe clavier français sous le DOS de Vistaurn:md5:360bd775d86e61a2eba60025cf709bb12007-09-02T19:09:55+00:002008-10-21T00:37:51+00:00Olivier MenguéGénéralautoexec.ntclaviercmd.execodecommand.comDOSKB16VistaWindows <p class="update"><strong>Mise à jour 2008-08-30 :</strong> Cette astuce a été sélectionnée par le magazine <em><a href="http://www.ordinateur-individuel.com/">L'Ordinateur Individuel</a></em> et publiée dans le numéro 208 (septembre 2008) page 136 comme <em>astuce du mois</em>.</p>
<p>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 <kbd class="key">Ctrl+Alt+C</kbd> à l'invite de commandes MS-DOS. La deuxième, c'est <kbd class="key">Ctrl+Alt+N</kbd> pour le Bloc-Notes (N comme NotePad). Et la troisième, c'est d'installer mon fichier <code>.INF</code> qui ajoute une entrée <em>Ouvrir un shell</em> dans le menu contextuel de l'Explorateur Windows.</p>
<p>Alors de temps en temps je vais voir comment évoluent les articles de Wikipédia dédiés au <a href="http://en.wikipedia.org/wiki/MS-DOS">MS-DOS</a> 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 <a href="http://en.wikipedia.org/wiki/MS-DOS#Windows_NT">Windows NT</a> 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.</p>
<pre class="terminal cmd">
<samp>Microsoft Windows [version 6.0.6000]
Copyright (c) 2006 Microsoft Corporation. Tous droits réservés.
</samp><samp class="prompt cmd">C:\Users\<var>Dolmen</var>></samp><kbd>ver</kbd>
<samp>
Microsoft Windows [version 6.0.6000]
</samp><samp class="prompt cmd">C:\Users\<var>Dolmen</var>></samp><kbd>command /k ver</kbd>
<samp>
MS-DOS Version 5.00.500
</samp><samp class="prompt cmd">C:\USERS\<var>DOLMEN</var>></samp>
</pre>
<p>Rien de spécial jusque là.</p>
<pre class="terminal cmd">
<samp class="prompt cmd">C:\USERS\<var>DOLMEN</var>></samp><kbd>cd </kbd>
</pre>
<p>Mais là, <strong>oh stupeur !</strong> Pas moyen de taper un '\'. La combinaison de touches <kbd class="key">AltGr+8</kbd> ne fonctionne pas ! En fait, <strong>le clavier est en QWERTY</strong> dans <code>COMMAND.COM</code> !</p>
<p>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 <code>debug.exe</code> ou <code>edit.com</code>. Vous pouvez tester avec tous les <code>.COM</code> (ceux-là, contrairement aux <code>.EXE</code>, vous êtes sûrs que ce sont des programmes DOS) :</p>
<pre class="terminal cmd">
<samp class="prompt cmd">C:\Users\<var>Dolmen</var>></samp><kbd>dir %windir%\System32\*.com</kbd>
<samp> Le volume dans le lecteur C s'appelle <var>XXX</var>
Le numéro de série du volume est <var>YYYY-ZZZZ</var>
Répertoire de <var>C:\Windows</var>\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 <em>KB16.COM</em>
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) <var>VV VVV VVV VVV</var> octets libres
</samp></pre>
<p>Vous aurez peut-être noté la présence de <code>KB16.COM</code> qui semble une piste à explorer :</p>
<pre class="terminal cmd">
<samp class="prompt cmd">C:\USERS\<var>DOLMEN</var>></samp><kbd class="cmd">kb16 /?</kbd>
<samp>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.
</samp><samp class="prompt cmd">C:\USERS\<var>DOLMEN</var>></samp><kbd class="cmd">chcp</kbd>
<samp>Page de codes active : 850
</samp><samp class="prompt cmd">C:\USERS\<var>DOLMEN</var>></samp><kbd>kb16 fr,850 /E</kbd>
<samp>
</samp><samp class="prompt cmd">C:\USERS\<var>DOLMEN</var>></samp>
</pre>
<p>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 <code>mem /C</code>). Et vous aurez noté que <code>KB16.COM</code> n'est pas traduit : Microsoft ne semble plus attacher autant d'importance à la traduction de ses produits.</p>
<p class="update"><strong>Mise à jour 2008-10-20 :</strong> La solution ci-dessous est obsolète. J'ai trouvé la vraie solution au problème, bien plus simple. <a href="http://o.mengue.free.fr/blog/post/2007/09/02/41-le-clavier-francais-sous-le-dos-de-vista#c3972">Sautez au commentaire 26</a>.</p>
<p>Pour charger automatiquement <code>KB16.COM</code> dans les prochaines sessions, il faut ajouter l'appel dans <code>%windir%\System32\autoexec.nt</code>. Mais comme avec Vista, rien n'est simple en raison de la protection paranoïaque des commandes d'administration, voici la marche à suivre :</p>
<ol>
<li>Dans le menu <em>Démarrer</em>, <em>Tous les programmes</em>, <em>Accessoires</em>, cliquez avec le bouton droit sur <em>Invite de commandes</em> puis <em>Exécuter en tant qu'administrateur</em>.</li>
<li>Chargez le clavier français et lancez <code>edit.com</code> :
<pre class="terminal cmd">
<samp>Microsoft Windows [version 6.0.6000]
Copyright (c) 2006 Microsoft Corporation. Tous droits réservés.
</samp><samp class="prompt cmd">C:\Windows\system32></samp><kbd class="cmd">KB16 fr,850 /E</kbd>
<samp>
</samp><samp class="prompt cmd">C:\WINDOWS\SYSTEM32></samp><kbd class="cmd">edit autoexec.nt</kbd>
</pre>
Pourquoi <code>edit.com</code> ? On aurait pu aussi utiliser le Bloc-Notes (<code>notepad.exe</code>). Sauf que l'on souhaite ici entrer des accents qui seront affichés dans la page de code du terminal, c'est à dire <a href="http://fr.wikipedia.org/wiki/Page_de_code_850">850</a>. Or le Bloc-Notes ne connaît que les encodages ANSI (cp1252), Unicode (ucs-2le), Unicode Big Endian (ucs2-be) et UTF-8.</li>
<li>Tapez <kbd class="key">Ctrl+Fin</kbd> et collez les lignes suivantes (pas avec <em>Copy</em> du menu <em>Edit</em> d'<code>edit.com</code>, mais avec <em>Modifier</em>, <em>Coller</em> dans le menu système de la fenêtre) :
<pre class="code vim vimft-dosbatch">
lh <span class="Identifier">%SystemRoot%</span>\system32\KB16 fr,850 <span class="Special">/E</span>
<span class="Statement">if</span><span class="Operator"> not errorlevel</span> <span class="Constant">1</span> <span class="Identifier">echo</span><span class="Constant"> Clavier français activé.</span>
</pre></li>
<li>Quittez en enregistrant : <kbd class="key">Alt+F</kbd>, <kbd class="key">x</kbd>, <kbd class="key">Entrée</kbd>.</li>
</ol>http://o.mengue.free.fr/blog/post/2007/09/02/41-le-clavier-francais-sous-le-dos-de-vista#comment-formhttp://o.mengue.free.fr/blog/feed/atom/comments/41