Проблема с раскладкой я так понял была решена?
А в Дельфях когда писали, какой шрифт использовали для вывода сообщений? Стандартное окно message?
Это пробовал делать?
Код:
![Выделить весь код](images/misc/selectcode.png)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1251.nls"
"1254"="c_1251.nls"
"1255"="c_1251.nls"
Q: При установке в нелокализованной Windows русских программ, все меню с кириллицей искажены. Можно ли что-то сделать? Как в Windows 2000/XP включить возможность использования русского шрифта для DOS-приложений?
А: Это известная проблема кириллицы в Windows NT/2000/XP. Можно попробовать ее исправить по этой инструкции: в Windows 2000 войдите, для начала, в «Control Panel» - «Regional Options» («Панель управления» - «Язык и стандарты»). На закладке «General» («Общие»), в разделе «Settings for the current user» («Параметры настройки для текущего пользователя») поставьте «Russian» («Русский») а в «Language settings for the system» («Языковые параметры системы») - «Cyrillic» («Кириллица») и установите его как default-шрифт («Задать умолчание»). В появившемся окне «Select System Locale» необходимо выставить «Russian» («Русский»). Далее нажмите кнопку «Other» («Другие») и установите флажок «20880 (IBM EBCDIC – Cyrillic (Russian))». Если не помогло, то в редакторе реестра откройте ветвь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\FontSubstitutes
и исправьте параметры шрифта, «отвечающего» за окна с искаженными символами:
«MS Shell Dlg»=«Tahoma»
«MS Shell Dlg 2»=«Tahoma»
на
«MS Shell Dlg»=« Tahoma,204»
«MS Shell Dlg 2»=«Tahoma,204»
либо на
«MS Shell Dlg»=«Lucida Sans Unicode»
«MS Shell Dlg 2»=«Lucida Sans Unicode»
Для других шрифтов тоже можно выбрать кириллическое подмножество, дописав к ним цифры «204». Также в ветви HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\FontMapper
установите:
«ARIAL»=dword:000000cc
«DEFAULT»=dword:000000cc
И, наконец, в ветви:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
«1251»=«C_1251.NLS»
«1252»=«C_1251.NLS»
«866»=«C_866.NLS»
«ACP»=«1251»
«OEMCP»=«866»
«MACCP»=«10007»
«OEMHAL»=«vga866.fon»
@=«C_1251.NLS»
После изменений следует перезагрузить Windows
В Windows XP также необходимо в диалоге «Control Panel» - «Regional and Language Options» - «Advanced» («Панель управления» - «Язык и региональные стандарты» - «Дополнительно») поставить флажок в длинном списке кодировок "Code page conversion tables" («Кодовые страницы таблиц преобразования») на строке «20880 (IBM EBCDIC - Cyrillic (Russian))» и установить параметр «Language for non-Unicode programs» («Язык программ, не поддерживающих Юникод») в положение «Rusian» («Русский»). А на вкладках «Regional Options» и «Languages» («Региональные параметры» и «Языки») везде установить поддержку русского языка – это параметры «Standarts and formats», «Location», («Языковые стандарты и форматы», «Расположение»). В разделе «Languages» - «Text services and input languages» («Языки» - «Языки и службы текстового ввода») нужно добавить русскую раскладку клавиатуры.
Если с DOS-приложениями после этого по-прежнему остались проблемы, то вставьте в файл \WINNT\SYSTEM32\AUTOEXEC.NT вызов какого-нибудь русификатора или команду
«KB16 RU,866,C:\WINNT\SYSTEM32\KEYBOARD.SYS»
а в разделе реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\KeyboardLayout\DosKeybCodes
установите значение параметра «00000409» равным «ru»