Стоит XP Service pack 2
Есть программа под DOS с кадастром населения. При поиске по ФИО клавой не воспринимается переключение рус/англ ни в какую...
При Win'98 все нормально...
В файле autoexec прописано под настройки программы:
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;c:\dbu;c:\me;c:\util;c:\reestr.22
verify on
set tmp=c:\windows\temp
set temp=c:\windows\temp
mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi)
mode con codepage select=866
keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys
verify on
set clipper=f195
В файле config
DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\WINDOWS\EMM386.EXE
dos=high, umb
files=200
buffers=50
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=007,866,C:\WINDOWS\COMMAND\country.sys
Проблемы с файлом autoexec
Автор Samanta, 16 окт. 2008 05:08
Сообщений в теме: 8
#1 OFFLINE
Отправлено 16 Октябрь 2008 - 05:08
#2 OFFLINE
Отправлено 16 Октябрь 2008 - 07:11
autoexec какой? Нужен тот, что .nt
#3 OFFLINE
Отправлено 16 Октябрь 2008 - 10:00
Downloader (16.10.2008, 10:11) писал:
autoexec какой? Нужен тот, что .nt
.bat
Потому как запускаю программу с таким же расширением... с pif'ом вообще не грузится...
А в .nt прописано
REM AUTOEXEC.BAT is not used to initialize the MS-DOS environment.
REM AUTOEXEC.NT is used to initialize the MS-DOS environment unless a
REM different startup file is specified in an application's PIF.
Что это значит?
#4 OFFLINE
Отправлено 16 Октябрь 2008 - 11:30
Samanta: вам нужно прописать все то, что вы написали в autoexec.bat в файл autoexec.nt (находится в C:\WINDOWS\system32).
В ХР autoexec.bat больше не используется, вместо него теперь
AutoExec.nt = AutoExec.bat
Config.nt = Confog.sys
так что вписывать надо тоже самое и туда же. Кстати, все строчки, начинающиеся с REM - комментарии и их можно удалить.
После этого все должно работать правильно.
В ХР autoexec.bat больше не используется, вместо него теперь
AutoExec.nt = AutoExec.bat
Config.nt = Confog.sys
так что вписывать надо тоже самое и туда же. Кстати, все строчки, начинающиеся с REM - комментарии и их можно удалить.
После этого все должно работать правильно.
Поскольку Ничто не есть Нечто, все, что не Нечто есть Ничто; а тот факт, что Нечто не есть Ничто, является чрезвычайно веским доводом в пользу Ничто, особенно для людей, искушенных в житейских делах.
Г. Фильдинг
#5 OFFLINE
Отправлено 16 Октябрь 2008 - 17:34
Программа на фоксе (foxpro)? Если предыдущий совет не поможет, создайте bat файл, в нем пропишите запуск keyrus.com (или найдите rk.com в инете) и затем запуск вашей программы, создайте ярлык для запуска и всё, bat запускаете из в той же папки, где сама программа и туда же положите keyrus.com или в bat файле первой строкой пропишите cd путь_к_папке, напр.
Переключение прав. клавишей ctrl
KEYRUS.zip 11,26К
100 Количество загрузок:
Цитата
cd c:\reestr.22
keyrus.com
reestr.exe
keyrus.com
reestr.exe
KEYRUS.zip 11,26К
100 Количество загрузок:
Сообщение отредактировал Pili: 16 Октябрь 2008 - 17:34
#6 OFFLINE
Отправлено 20 Октябрь 2008 - 07:03
Pili (16.10.2008, 20:34) писал:
Программа на фоксе (foxpro)? Если предыдущий совет не поможет, создайте bat файл, в нем пропишите запуск keyrus.com (или найдите rk.com в инете) и затем запуск вашей программы, создайте ярлык для запуска и всё, bat запускаете из в той же папки, где сама программа и туда же положите keyrus.com или в bat файле первой строкой пропишите cd путь_к_папке, напр.
Спасибо, сработало! Программа на фоксе, правда из под ХР запускалась без проблем, но видимо это операционка так поставлена была... тем менее пусть и с подвывертами, но работает
Гран мерси!
#7 OFFLINE
Отправлено 20 Октябрь 2008 - 07:29
А можно как-нибудь прописать про этот keyrus в самом реестре regedit?
А то мне жутко от проделанных манипуляций
А то мне жутко от проделанных манипуляций
#8 OFFLINE
Отправлено 20 Октябрь 2008 - 08:08
а смысл? те же костыли, только вид сбоку...
ну раз так хочется править реестр, то вот другой способ (без внешних программ типа keyrus)
Выполнение данного способа можно автоматизировать с помощью вот такого скрипта:
Перезагружаемся и проверяем.
З.Ы. После выполнения запуск keyrus через батник - отключаем.
ну раз так хочется править реестр, то вот другой способ (без внешних программ типа keyrus)
Цитата
Вопрос: В DOS-приложениях не переключается раскладка клавиатуры на русскую, хотя русские буквы отображаются нормально.
Ответ: Для решения необходимо в реестре по адресу:
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> KeyboardLayout
изменить значение ключа 00000409 в папке DosKeybCodes на "ru".
Кроме этого, в файле "autoexec.nt", расположенном в Windows\system32, надо добавить строку "lh %SystemRoot%\system32\kb16.com ru" (без кавычек). После перезагрузки переключение раскладки клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). Данный метод нормально работает в том случае, если Language settings for the system (апплет Regional Options) в качестве Default стоит Cyrilic.
Ответ: Для решения необходимо в реестре по адресу:
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> KeyboardLayout
изменить значение ключа 00000409 в папке DosKeybCodes на "ru".
Кроме этого, в файле "autoexec.nt", расположенном в Windows\system32, надо добавить строку "lh %SystemRoot%\system32\kb16.com ru" (без кавычек). После перезагрузки переключение раскладки клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). Данный метод нормально работает в том случае, если Language settings for the system (апплет Regional Options) в качестве Default стоит Cyrilic.
'Скрипт для ввода русских букв в DOS-сессиях NT-систем
'*********************************************************
Option Explicit
Dim WshShell,objFSO 'просто обьекты
Dim strFile 'путь в System32
Dim objFile 'имя autoexec.nt
Dim strCharacters 'строка символов
Dim numbCharacters 'кол-во совпадений в строке
set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Читаем файл autoexec.nt
strFile = WshShell.ExpandEnvironmentStrings("%WinDir%") & "\system32\autoexec.nt"
Set objFile = objFSO.OpenTextFile(strFile, 1)
Do Until objFile.AtEndOfStream
strCharacters = objFile.ReadLine
numbCharacters = inStr(1,strCharacters,"kb16")
if numbCharacters<>0 Then
Wscript.Echo "Уже установлено! Проверьте"
Wscript.Echo strCharacters
wscript.echo "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes\00000409 = " _
& WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes\00000409")
Exit Do
End if
Loop
objFile.Close
'если kb16.com не найден то мы его добавляем
if numbCharacters = 0 Then
Set objFile = objFSO.OpenTextFile(strFile, 8) 'открываем файл на добавление информации
objFile.WriteLine
objFile.WriteLine "REM Ввод букв DOS сесиях"
objFile.WriteLine "lh %SystemRoot%\system32\kb16.com ru"
objFile.Close
WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes\00000409","ru"
wscript.echo "Изменения завершены"
End if
------------------------------------------------
копируем весь этот текст в файл с расширением vbs (например ru_dos.vbs) и запускаем на том компьютере, который хотим переделать. Перезагружаемся и проверяем.
З.Ы. После выполнения запуск keyrus через батник - отключаем.
Поскольку Ничто не есть Нечто, все, что не Нечто есть Ничто; а тот факт, что Нечто не есть Ничто, является чрезвычайно веским доводом в пользу Ничто, особенно для людей, искушенных в житейских делах.
Г. Фильдинг
#9 OFFLINE
Отправлено 20 Октябрь 2008 - 10:08
Maikll (20.10.2008, 11:08) писал:
Вопрос: В DOS-приложениях не переключается раскладка клавиатуры на русскую, хотя русские буквы отображаются нормально.
Ответ: Для решения необходимо в реестре по адресу:
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> KeyboardLayout
изменить значение ключа 00000409 в папке DosKeybCodes на "ru".
Кроме этого, в файле "autoexec.nt", расположенном в Windows\system32, надо добавить строку "lh %SystemRoot%\system32\kb16.com ru" (без кавычек). После перезагрузки переключение раскладки клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). Данный метод нормально работает в том случае, если Language settings for the system (апплет Regional Options) в качестве Default стоит Cyrilic.
Ответ: Для решения необходимо в реестре по адресу:
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> KeyboardLayout
изменить значение ключа 00000409 в папке DosKeybCodes на "ru".
Кроме этого, в файле "autoexec.nt", расположенном в Windows\system32, надо добавить строку "lh %SystemRoot%\system32\kb16.com ru" (без кавычек). После перезагрузки переключение раскладки клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). Данный метод нормально работает в том случае, если Language settings for the system (апплет Regional Options) в качестве Default стоит Cyrilic.
Именно это мне и помогло
Спасибо большое!!!
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных

















