Le clavier français sous le DOS de Vista
Par Olivier Mengué le dimanche 2 septembre 2007, 19:09 - Général - Lien permanent
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 :
- 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.
- 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
Pourquoiedit.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. - 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é.
- Quittez en enregistrant : Alt+F, x, Entrée.
Commentaires
Merci beaucoup pour ces précisions !
Déjà que le debug c'est pas vraiment intuitif... mais alors en qwerty sur un clavier français c'est l'enfer ! :)
Starsheep.
Bonjour,
Un grand merci pour cette aide. Je suis sous XP et utilise aussi un Mac, mais je reste un afficionado de MSDOS. A propos de MAc, les fenêtres ont un aspect Mac OS X ! Thème ? Virtual PC sous MAc ?
Amitiés
@Starsheep :
Content de voir que je ne suis pas le dernier des Mohicans à encore utiliser debug.exe sous Windows. :)
Mille, mille mille mercis! J'Utilise encore un programme ms-dos indispensable dans mon travail. Sous XP je n'avais pas ce problème, mais alors sous Vista....
Un grand merci pour cette aide :-)
et pour le
"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."
comment as tu fait sous Vista ?
merci
Vincent
BRAVO et Merci !
pour toutes les explication que tu donne .
merci
Alain
Bonjour Olivier, et merci de m'avoir dépanné. Je n'aurais pas trouvé la solution sans ton aide.
Bien que je n'aie plus le problème grâce à ta super information, je voudrais bien comprendre comment tu y es arrivé. Tu n'es pas obligé de me répondre, mais je pense que je ne suis pas le seul à me poser la question.
Ci-dessous, je comprends bien KB16 /?. Ensuite je vois une commande qui commence par KEYB.
Je pensais donc voir une réponse commençant par KEYB, donc je ne vois pas où tu as trouvé chcp, puis kb16 fr,850 /E.
Quelquefois j'aime comprendre ce que je fais, mais l'important est que mon problème est résolu.
Merci, Georges.
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
chcp
affiche la page de code courante. La page de code, c'est le jeu de caractères à utiliser pour l'affichage. Il faut que les code des caractères générés à partir des touches frappées soient en correspondance avec les dessins des caractères affichés.J'utilise le réultat donné par
chcp
pour savoir que mettre en second paramètre deKB16
: le "yyy" indiqué dans l'aide.KB16
sans paramètre permet d'afficher les paramètres actuels du clavier DOS.Bravo Olivier Mengué pour votre contribution à la résolution de ce problème "Vista". Le correctif recommandé a fonctionné parfaitement.
Je suis un vieil adepte de Qbasic et j'aurais été désolé et embêté de travailler sur un clavier "qwerty".
Il me reste, pour le principe et pour tous ceux qui ne sauront pas appliquer la modif parce qu'ils ne sont qu'utilisateurs, à raler auprès de Microsoft pour l'integration de ce patch à "Vista".
Amitiés
Bonjour,
Petite question (fenêtre DOS sous XP) :
Je souhaite migrer vers Windows XP, mais j'utilise un soft que j'ai programmé sous FOXPRO 2.5 version DOS ; soft qui m'est indispensable. Or sous Windows XP la fonction "NUMLOCK()" de FOXPRO DOS, qui permet de verouiller le pavé numérique fonctionne (NUMLOCK -> .T. ou .F., de façon logicielle) mais n'est pas suivie d'effet "physique" au niveau du pavé numérique : la fonction " =NUMLOCK(.T.) " ne transforme pas la touche "flèche droite" en touche "6". Ce qui était bien commode... et qui fonctionne sous windows 98.
N.B. : FOXPRO 2.5 version DOS tourne par ailleurs très bien dans une fenêtre DOS sous Windows XP.
Il y a sans doute une astuce ??? ...
Remerciements,
SEMAJ
Merci :) bonnes remarques !
Et oui le dos de notre enfance :)
@semaj
Pas d'idée à ce sujet, si ce n'est de créer un programme TSR pour émuler le comportement attendu. Techniquement faisable, mais pas facilement.
La solution la plus pérenne serait plutôt d'installer MS-DOS et ton logiciel dans une machine virtuelle avec VMware. Cela t'évitera d'avoir à nouveau des problèmes de compatibilité dans la version suivante de Windows. Le VMware player est gratuit et il est possible de créer gratuitement une machine virtuelle vierge sur laquelle tu installeras ton MS-DOS.
Merci pour cette info.
Mais pourquoi vouloir changer tout en permanence ??
Il faut bien que M.S vende des produits nouveaux !! ( ça vient de sortir !)
Pour moi, la grande nouveauté dans Vista, c'est que l'icone des dossiers est verticale dans l'Explorateur, alors qu'elle était horizontale
depuis près de 20 ans !!
Je viens de lire ton article mais je ne reconnais pas la même problématique que sur mon ordi. Chez moi, le clavier est bien AZERTY dans la fenêtre DOS (pas de problème pour obtenir un \ avec AltGr+8). Par contre le logiciel que j'utilise, Epi6, met le clavier en QWERTY. La modification de autoexec.nt n'y fait rien... Que faire (à part coller des gomettes sur le clavier...) ?
@Ariane
Est-ce que ton clavier est toujours en AZERTY après avoir tapé "
command
" dans la fenêtre DOS ? L'invite de commande n'est vraiment un environnement DOS tant que l'on n'y lance pas un programme DOS.Command.com
en est un. Ton programme Epi6 en est probablement un aussi. Mais je m'étonne que la modification deautoexec.nt
n'ai rien changé.Bonjour :) J'ai pas bien saisi l'étape 3 (l'avant-dernière) surtout la phrase "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) "
je ne sais tjrs pas comment copier ni comment coller les 2 lignes dans la fenetre edit ... Merci de me répondre .. Bon travail :)
@dibiii
Tu accèdes au menu système d'une fenêtre DOS avec Alt+Espace ou en cliquant sur l'icône en haut à gauche du titre de la fenêtre.
Si tu n'arrives toujours pas à copier les lignes par copier/coller, copie les manuellement simplement en les retapant.
merci
Je suis un Québécois je souhaiterais savaoir si il existe un code pour avoir un clavier français avec les accents mais avec un clavier qwerty. merci
René
@René
La liste des claviers disponibles peut être obtenue ainsi :
Essaye
kb16 ca
oukb16 can
.Bonjour Olivier,
J'ai essayer ton truc (je l'avais déjà fait avant), mais mon problème n'est pas d'avoir le clavier français... c'est de le garder. Lorsque je vais dans l'invite de DOS, mon clavier français fonctionne bien mais lorsque j'utilise mon programme basic, mon clavier deviens anglais et ne possède plus d'accents. J'utilise pourtant ce programme basic que j'ai écris il y a bien des années et tout a toujours bien fonctionné même avec XP. Mais depuis que j'ai changé pour VISTA mon programme "basic" perd ses accents. Lorsque je stop mon programme et que je fais la commande "shell" pour revenir en DOS, mon clavier conserve le clavier anglais sans accents (comme dans mon programme basic). Pourtant que j'ouvre une nouvelle fenêtre de l'invite DOS mon clavier est français. J'ai donc 2 fenêtres d'ouvertes une avec le clavier français et l'autre anglais.... Je n'y comprends plus rien... As-tu déjà été confronté à ce problème???
Sous Windows, depuis Windows NT, il y a deux modes de fonctionnement de l'invite de commande :
cmd.exe
command.com
La gestion du clavier est différente dans les deux modes. Le mode Win32 est géré directement par le pilote clavier normal de Windows. Le mode émulation DOS est géré via un traducteur,
kb16.com
.Lorsqu'on ouvre une « Invite de commandes » on est en mode Win32. Dès que l'on lance un programme DOS tel que QBasic on passe en mode émulation MS-DOS.
En cherchant plus sur ce problème je suis tombé sur l'article 262283 de la base de connaissance de Microsoft : Les paramètres régionaux d'entrée ne tapent pas la configuration de clavier sélectionnée dans la fenêtre MS-DOS.
Il semble que ce soit là la solution plus propre que celle je propose ci-dessus.MàJ : ignorez la suite et passez au commentaire 26 où se trouve la vraie solution.
Il faut éditer la clé suivante de la base de registre
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes
0000040C="fr"
00000C0C="cf"
et00010C0C="cf"
0000080C="be"
0000100C="sf"
Je n'ai pas de Vista sous la main pour vérifier, mais en tout cas j'ai vérifié que c'est comme cela que Windows XP est paramétré.
Bonjour Olivier,
J'ai enfin trouvé la solution grâce à ton aide. J'ai creer un fichier ".bat" en commencant par la commande (kb16 cf,850/e) et voilà!!! J'ouvre mon programme en basic et le clavier fonctionne parfaitement bien en français.
Je te remercie beaucoup,
René
En passant , j'ai un dernier problème avec ce programme.... il s'agit de l'imprimante. Il semble que la commande basic "lprint" cause un problème. Lorsque je veut faire une impression (qui fonctionnait très bien avec XP) je reçois le message d'erreur "erreur d'unité" et rien n'imprime. J'ai pourtant fait un "pool" comme avec XP de USB avec LPT1 mais rien à faire .... Aurais-tu une idée pas hazard du problème???
moi j'aurait besoin d'un pti coup de main je comprends pas trop la moi je suis sous vista et j'ai un logiciel en dos mais quand je l'ouvre mon clavier passe en QWERTY j'ai fait ce qui est expliqué juste dessus mais c'est toujours pareil
Ignorez mon commentaire 23 : il n'y a pas de problème de configuration de ce côté.
Voici la vraie solution, très simple :
HKEY_CURRENT_USER\Keyboard Layout\Preload
1
: changez0000040c
en0000040C
.Eh oui, la casse compte. C'est juste ça !
Bonjour,
J'ai réalisé la modif du point 26, et bien que le clavier soit bien en azerty à l'accès dos, il repasse en qwerty lorsque je lance dBase3+ (VF).
Précédemment, sous XP je n'avais pas ce problème. Existe-t-il une solution? J'ai vraiment BESOIN de faire fonctionner dBase.
Merci d'avance.
bravo olivier enfin quelqu'un de compétant pour passer le clavier sous dos en azerty
mais j'aimerai le passer en azerty en permanence.
dans le paragraphe vous donnez la solution en 26.
mais je ne sais pas ouvrir la base du régistre pour écrire les parties 2 et 3.
merci de m'expliquer.
autre pb plus ardu
1)en quick basic 4.5 la fenetre de qb ne s'ouvre pas plein écran
2)en mode graphique mes prog ne fonctionnet plus.j'ai alors le message suivant qui s'affiche.
16bits msdos subsystem.the system does not support full screen mode.
ce vista c'est une catastrophe.
merci encore de me repondre par e mail car je n'ai encore pas trop l'habitude de l'internet